0

我在数据库结构之下。

我有用户,一个用户有很多护照,所以我创建了一个关系,比如 user hasMany passports 和 passport belongsTo the user In Respected Models。

当我更新用户详细信息并输入 2-3 个护照号码并尝试使用 saveMany 将数据保存在 user_passport 表中时。主键 id 和 user_id 保存在数据库中,但护照号为 NULL。下面是保存过程:

$user = $this->find($id); 
$user->passports()->delete(); 
$new[] = new UserPassport(['passport' => '123456789', 'created_by' => $user->id, 'updated_by' => $user->id]); 
$new[] = new UserPassport(['passport' => '111111111', 'created_by' => $user->id, 'updated_by' => $user->id]); 
$user->passports()->saveMany($new);

如果有人遇到同样的问题,请更新。

4

1 回答 1

0

有一种更简单的方法可以完成您想要的。你可以简单地做这样的事情:

$user->passports()->delete();

$user->passports()->create(['passport' => '123456789', 'created_by' => $user->id, 'updated_by' => $user->id]);
$user->passports()->create(['passport' => '123456789', 'created_by' => $user->id, 'updated_by' => $user->id]);

是的,这将运行单独的查询,但代码非常清晰易读。

于 2016-05-05T07:25:34.740 回答