2015-04-20 9 views
0

У меня есть три стола: groups, questions и answers.Многоотраслевые отношения Laravel 5

groups связан с questions в отношениях друг к другу. Аналогично, questions имеет отношение «один-много» с answers. Редакторы предоставляют answer по заданному вопросу после того, как администратор отправляет groups и questions.

Как создать это в Laravel 5? Я думаю, что создать сводную таблицу для group_question и question_answer - это правильное место для начала, но я не уверен, потому что не знаю, как позже выбрать вопросы и ответы вместе. Должен ли я вместо этого использовать json и сохранять все вопросы и ответы на одну запись?

ответ

0

Существует несколько способов решить вашу проблему в Laravel, но самый простой способ - это, вероятно, использование отношений hasManyThrough. Какие могут быть определены в вашей группе класса что-то вроде этого:

class Group extends Model { 

public function answers(){ 
     return $this->hasManyThrough('App\Answer','App\Question'); 
    } 
} 

только убедитесь, что ваши таблицы имеют следующие ссылочное поле

groups 
    id - integer 
    name - string 

questions 
    id - integer 
    group_id - integer 
    text - string 

answers 
    id - integer 
    question_id - integer 
    text - string 

вы можете прочитать на более подробно об этом в Laravel документы под красноречивые отношения.

See more from Laravel 5's docs on the hasManyThrough relationship here.

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