用户hasmany个人资料个人资料属于用户。
以下作品:
$u = User::firstOrNew(['email' => $s['email']]);
$u->name = $s['name'];
$u->avatar = $s['avatar'];
$u->save();
$p = new UserProfile;
$p->provider = $s['provider'];
$p->provider_uid = $s['provider_uid'];
if ($u->profiles()->save($p)) {
}
但是我真的不喜欢,是否有更好的简化方法?为什么我不能保存1个原子插入物?
您试图将数据保存到2个不同的表中,这就是为什么不能使用单个insert来做到这一点。
完成此操作的方法(通常是先保存父对象,然后关联子对象并保存)。
您还可以查看Eloquent模型的push()方法,该方法的工作方式与save()相似,但也可以在相关模型上调用save()。使用此方法可以替换以下代码:
$a = new A;
$a->save();
$b = new B;
$b->a()->associate($a);
$b->save();
和
$a = new A;
$b = new B;
$b->a()->associate($a);
$a->push();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句