从一个 table 获取行并将其插入另一个 Laravel
Get row from one table and insert it in other Laravel
我正在尝试使用 eloquent 方法将一个 table 中的一行插入到 Laravel 5.4 中的另一个,但我错过了一些东西。想不通...
这是我的代码:
public function change($id)
{
$car = Old::find($id);
unset($car['created_at'],$car['updated_at']);
$clone = $car->replicate();
New::create($clone);
}
Type error: Argument 1 passed to
Illuminate\Database\Eloquent\Builder::create() must be of the type
array
您正在传递模型的一个实例,您必须传递一个数组,所以试试这个:
public function change($id)
{
$car = Old::find($id);
unset($car['created_at'],$car['updated_at']);
$clone = $car->replicate();
New::create($clone->toArray());
}
这是一种可能的方法
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,
...
]);
我正在尝试使用 eloquent 方法将一个 table 中的一行插入到 Laravel 5.4 中的另一个,但我错过了一些东西。想不通...
这是我的代码:
public function change($id)
{
$car = Old::find($id);
unset($car['created_at'],$car['updated_at']);
$clone = $car->replicate();
New::create($clone);
}
Type error: Argument 1 passed to Illuminate\Database\Eloquent\Builder::create() must be of the type array
您正在传递模型的一个实例,您必须传递一个数组,所以试试这个:
public function change($id)
{
$car = Old::find($id);
unset($car['created_at'],$car['updated_at']);
$clone = $car->replicate();
New::create($clone->toArray());
}
这是一种可能的方法
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,
...
]);