2016-12-19 3 views
4

У меня вопрос. У меня есть две таблицы: устройства и лицLaravel лезвие смешанных отношений. Как я могу это сделать?

В этих DB одно устройство может быть назначено одному человеку (так что это 12:59 relationshiip), но один человек может иметь много устройств (так что это один к многие отношения). Как я могу это сделать в 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'); 

    } 
} 

Поэтому я думаю, что это отношение один к одному: один устройство, назначенное одному человеку.

Как я могу получить много устройств для одного человека? Изменилось. Кому принадлежит модель «Человек в человеке»? Это будет хорошо для этих вариаций?

+2

В качестве примечания, вы должны назвать свои модели в единственном числе (в том, что слово ^^?), Потому что один экземпляр представляет собой один объект, а не несколько из них. 'new Persons()' не имеет смысла, потому что он создает только один «Человек». – AntoineB

ответ

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'); 

    } 
} 
+0

Вы можете добавить ссылку на документацию Laravel о взаимоотношениях: https://laravel.com/docs/5.3/eloquent-relationships#one-to-many – AntoineB

+1

@AntoineB Просто добавил, что: P –

+1

Почему downvote? Это неверно? –

2

Попробуй это:

Лица

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

Смежные вопросы