我试图使用雄辩的方法在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()必须属于该类型 阵列
答案 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,
...
]);