在laravel中插入具有关系的对象

我在Laravel5.3中遇到了一个问题,我查看了文档,也搜索了web,但没有找到任何内容

我使用Laravel关系连接两个表。现在,我希望在用户提交表单后同时将数据插入两个表中。第一个表是主表,称为“users”,第二个表是第一个表的“xyz”。表“xyz”包含连接两个表的“users\u id”列。显然,“users\u id”是“users”表的“id”列

现在出现的问题是,我想同时在“users”表(这很容易做到)和“xyz”表中插入数据。User::create()函数将轻松创建用户数据,它也在工作,但要在“xyz”表中插入数据,我将需要“User_id”列数据,并且在创建用户之前不会生成id,因为id列已激活自动递增属性

代码:

$user=新用户;
$inputArry=array('data1'=>$request['field1'],
'data2'=>$request['field2'],
'data3'=>$request['field3'],
);
$user->创建($inputArry);
$user->xyz()->创造([
“用户id”=>$user->id,
'name'=>$request['name'],
'about'=>$request['desc'],
'tag'=>$request['tag'],
]);

上面是我用于此目的的代码,但它给了我一个错误

错误:

Connection.php第761行中的查询异常:
SQLSTATE[23000]:完整性约束冲突:1048列’soft_id’不能为null(SQL:insert-into’xyz`(’user_id`、’name`、’about`、’tag`、’updated_at`、’created_at`)值(,John,我是John,dev,2016-11-09 21:01:292016-11-09 21:01:29))

插入相关表的一种方法是将关系用作:

$user=user::create($user\u输入);
$xyz=$user->xyz()->创建($xyz_输入);

它将自动填充xyz表中的user\u id

发表评论