laravel 5在两个表之间插入关系

用户名

用户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个原子插入物?

jedrzej.kurylo

您试图将数据保存到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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章