2013-08-19 19 views
10

Tôi chắc chắn phải có cách nhanh hơn để thực hiện các thao tác sau. Tôi đã không thể tìm thấy bất cứ điều gì về làm thế nào để lưu một đối tượng phương thức laravel như một hàng mới mà không ghi đè lên mục hiện có. Về cơ bản, một đơn giản hơn của mã hiện tại của tôi:Hàng sao chép/sao chép Laravel4

$oldItem = Item::find(1); 
$newItem = new Item; 
$newItem->key = $oldItem ->key; 
$newItem->name = $oldItem ->name; 
$newItem->path = $oldItem ->path; 
$newItem->save(); 

Thay vào đó, sao chép tất cả mọi thứ nhưng id của hàng:

$oldItem = Item::find(1); 
$newItem = $oldItem; 
unset($newItem->id); 
$newItem->save(); 

Trả lời

32

Bạn có thể thử

$newItem = Item::find(1)->replicate()->save(); 
+0

Chỉ cần phát hiện phương pháp này, cảm ơn! – kilrizzy

+1

Có thể hủy đặt 1 giá trị như $ item-> img –

+4

Bạn có thể sử dụng: '$ newItem = Item :: find (1) -> replicate(); unset ($ newItem-> img); $ newItem-> save(); ' – groovenectar