Laravel 拉维叶混合关系。我该怎么做?

Laravel 拉维叶混合关系。我该怎么做?,laravel,eloquent,blade,Laravel,Eloquent,Blade,我有个问题。我有两张桌子: 设备和人员 在这些DB中,一个设备可以分配给一个人,因此是一对一关系IP,但一个人可能有多个设备,因此这是一对多关系。在Laravel中,我如何才能做到这一点?一对一有点简单,在模型中我可以做到: 装置 class Devices extends Model { public function person(){ return $this->belongsTo('App\Persons'); } } 人 class Pers

我有个问题。我有两张桌子: 设备和人员

在这些DB中,一个设备可以分配给一个人,因此是一对一关系IP,但一个人可能有多个设备,因此这是一对多关系。在Laravel中,我如何才能做到这一点?一对一有点简单,在模型中我可以做到:

装置

class Devices extends Model
{
    public function person(){

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

    }
}

class Persons extends Model
{
    public function devices(){

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

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

如何让一个人拥有多台设备?在Persons模型中将BelongTo更改为BelongToMany?这些对这些变化合适吗?

这是一种关系,因此您的关系将如下所示:

class Persons extends Model
{
    public function devices(){

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

    }
}
装置

class Devices extends Model
{
    public function person(){

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

    }
}
试试这个:

class Persons extends Model
{
    public function devices(){

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

    }
}
意味着这个人将拥有许多设备

装置

class Devices extends Model
{
    public function person(){

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

    }
}
意味着该设备属于某个人


更多信息:

你可以添加一个链接,链接到Laravel关于关系的文档:@AntoineB只是添加了一个:p希望这确实是正确的,我不知道你为什么会被否决。顺便说一下,在设备模型中指定id是没有用的。@AmitGupta,我不知道会发生什么,但最近我得到了很多反对票。我开始认为SO的社区不像以前那么有建设性,我开始怀疑是否有必要对此做出贡献。作为一个补充,你应该给你的模型取一个单独的名字,这是一个词吗?^ ^,因为一个实例代表一个对象,而不是多个对象。新的人没有意义,因为它只创造了一个人。