laravel5.1 关联模型保存的方法(使用associate方法)

Posted 白桂任的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel5.1 关联模型保存的方法(使用associate方法)相关的知识,希望对你有一定的参考价值。

模型定义

class User
{

    public function customer()
    {
        return $this->hasOne(‘Customer‘);
    }

}

class Customer
{

    public function user()
    {
        return $this->belongsTo(‘User‘);
    }

}

  

需要注意的是 associate 方法是 BelongsTo 类才有,所以正确的调用方法如下:

$user = new User($data);
$customer = new Customer($customerData);

$customer->user()->associate($user);
$customer->save();

  

与此相反的方法是 disassociate 方法:取消两个模型之间的 belongsTo 关联

$customer->user()->disassociate();
$customer->save()

此方法需要注意的是,disassociate 并不会删除记录,只是更新关联的字段为 null 

 

附(通过关联的模型保存):

$user = new User($data);
$user->save();

$customer = new Customer($customerData);
$user->customer()->save($customer);

  

以上是关于laravel5.1 关联模型保存的方法(使用associate方法)的主要内容,如果未能解决你的问题,请参考以下文章

Laravel5.1 关联模型之后操作

CakePHP 保存非常深的关联模型

Laravel5.1 模型 --一对一关系

CakePHP - 如何在保存时将关联记录添加到模型中?

在 CakePHP 中保存时如何验证关联模型是不是存在

使用 hasOne 关联保存模型