2017-01-09 4 views
2

У меня есть три модели: стена, стол и ограничение. У всех есть идентификатор.Как получить модель, связанную со многими для многих отношений в Laravel?

Post 
id 

Wall 
id 

Constraint 
id 

Post_wall 
post_id 
wall_id 
constraint_id 

Между стенкой и постом у меня есть отношение ManyToMany. В сводной таблице этого отношения у меня есть столбец constraint_id. Когда я получаю все сообщения, связанные со Стеной, мне также нужно, чтобы ограничение было связано в сводной таблице.

Прямо сейчас я могу получить constraint_id с помощью метода withPivot ('constraint_id').

return $this->belongsToMany('App\Wall') 
     ->withPivot('constraint_id') 

Но я хочу объект, а не идентификатор. Возможно ли это в Laravel?

return $this->belongsToMany('App\Wall') 
     ->withPivot('constraint_id') 
     ->join('constraints', 'post_wall.constraint_id', '=', 'constraint.id'); 

Я также попытался присоединиться к таблице ограничений, но затем он не возвращает объект.

+1

Что вы пробовали? – Tosfera

+0

Проверьте эту ссылку, я думаю, вы можете найти свой ответ здесь: http://www.easylaravelbook.com/blog/2016/04/06/introducing-laravel-many-to-many-relations/ – amrdruid

+0

В конце страница, которую вы связали, я нашел метод -> withPivot ('description'). Это возвращает описание. В моей ситуации это помещает constraint_id в объект Post, но я хочу объект Constraint в объекте Post, а не только идентификатор. –

ответ