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

Laravel blade mixed relationships. How can I do that?

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

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

设备

class Devices extends Model
{
    public function persons(){

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

    }
}

class Persons extends Model
{
    public function devices(){

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

    }
}

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

我怎样才能将多台设备分给一个人?在 Persons 模型中将 belongsTo 更改为 belongsToMany?这些变体可以吗?

这是一个 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');

    }
}

试试这个:

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

意味着这个人会有很多设备。

设备

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

表示设备属于某个人。


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