Laravel刀片混合关系。我怎样才能做到这一点?

时间:2016-12-19 17:14:24

标签: laravel eloquent blade

我有一个问题。我有两张桌子: 设备

在这些DB中,一个设备可以分配给一个人(所以它是一对一的关系),但是一个人可能有很多设备(所以这是一对多关系)。我怎样才能在Laravel中做到这一点?一对一很容易,在模型中我可以这样做:

设备

failedMessage

class Devices extends Model
{
    public function persons(){

        return $this->hasOne('App\Persons','id');

    }
}

所以我认为这是一对一的关系:一个设备分配给一个人。

如何为一个人提供多种设备?在人物模型中将belongsTo更改为belongsToMany?对于那些变化,这些都是好的吗?

2 个答案:

答案 0 :(得分:2)

这是一个one-to-many关系,所以你的关系看起来像是:

class Persons extends Model
{
    public function devices(){

        return $this->hasMany('App\Devices');

    }
}

设备

class Devices extends Model
{
    public function person(){

        return $this->belongsTo('App\Persons');

    }
}

答案 1 :(得分:2)

试试这个:

<强>人

public function devices() {
    return $this->hasMany('App\Devices');
}

意味着Person将拥有许多设备。

设备

public function persons() {
    return $this->belongsTo('App\Persons');
}

表示设备属于某个人。

更多信息:http://laravel.com/docs/5.3/eloquent-relationships#one-to-many