我有一个问题。我有两张桌子: 设备和人
在这些DB中,一个设备可以分配给一个人(所以它是一对一的关系),但是一个人可能有很多设备(所以这是一对多关系)。我怎样才能在Laravel中做到这一点?一对一很容易,在模型中我可以这样做:
设备
failedMessage
人
class Devices extends Model
{
public function persons(){
return $this->hasOne('App\Persons','id');
}
}
所以我认为这是一对一的关系:一个设备分配给一个人。
如何为一个人提供多种设备?在人物模型中将belongsTo更改为belongsToMany?对于那些变化,这些都是好的吗?
答案 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