我必须承认,当我使用Laravel的关系,第一个开始的地方,我不得不一直向后引用文档的,甚至然后在某些情况下,我并没有完全得到正确的部分。
为了帮助您,associate()
用于更新belongsTo()
关系。看看你的代码,返回的类$user->customer()
是一个hasOne
关系类,不会有关联方法。
如果你要这样做的话。
$user = new User($data);
$customer = new Customer($customerData);
$customer->user()->associate($user);
$customer->save(); //这个是对的 $user是主表 ,customer是副表
它将像$customer->user()
一个belongsTo
关系一样工作。
要做到这一点,另一种方式将首先保存用户模型,然后将客户模型保存为:
$user = new User($data);
$user->save();
$customer = new Customer($customerData);
$user->customer()->save($customer);//这个是对的 $user是主表 ,customer是副表,
编辑:可能没有必要先保存用户模型,但我一直都这么做,不知道为什么。
Post与comment是一对多的关系
$comment = new App\Comment(['message' => 'A new comment.']);
$post = App\Post::find(1);
$post->comments()->save($comment);