从一个表中获取行并将其插入其他Laravel中

时间:2017-09-08 09:28:49

标签: php laravel-5.4

我试图使用雄辩的方法在Laravel 5.4中从一张桌子到另一张桌子插入一行,但我想念一些东西。无法弄清楚......

这是我的代码:

public function change($id)
{
   $car = Old::find($id);
   unset($car['created_at'],$car['updated_at']);
   $clone = $car->replicate();
   New::create($clone);
}
  

类型错误:参数1传递给   Illuminate \ Database \ Eloquent \ Builder :: create()必须属于该类型   阵列

2 个答案:

答案 0 :(得分:1)

您正在传递模型的实例,并且必须传递数组,因此请尝试以下操作:

public function change($id)
{
   $car = Old::find($id);
   unset($car['created_at'],$car['updated_at']);
   $clone = $car->replicate();
   New::create($clone->toArray());
}

答案 1 :(得分:1)

这是一种可能的方式

public function change($id)
{
 $car = Old::find($id);
 unset($car['created_at'],$car['updated_at']);
 $clone = $car->replicate();
 New::create(array($clone));
}

或者,如果您知道这些值,您可以显式创建数组并在New Model

中创建一个条目
New::create([
'name' => $clone->name,
'email => $clone->email,
...
]);