#php #laravel
#php #laravel
Вопрос:
я пытаюсь создать простое приложение для викторины с помощью Laravel и Mysql.
идея в том, что я застрял в отношениях между вопросами / вариантами.
сначала я создаю таблицу под названием «quiz»
ID name
1 Brazil
2 EUA
3 Japan
таблица под названием «вопросы»
ID quiz_id name
1 1 President ?
2 1 Food?
3 1 Music?
4 1 Maiority?
и таблица под названием «параметры»
ID question_id name
1 1 lula
2 1 bolsonaro
3 2 rice
4 2 beans
5 3 samba
6 3 rock
7 4 black
8 4 white
как и на изображении ниже, я получаю вопросы, связанные с викториной. моя функция в моем HomeController выглядит следующим образом .
public function index(){
$quiz = Quiz::where('id',1)->with('questions')->get();
$array = array('quiz' =>$quiz);
return $array;
}
и моя модель викторины имеет эту взаимосвязь
public function questions(){
return $this->hasMany('Appquizquestion', 'quiz_id');
}
но я хочу связать вопросы с вариантами.
я думаю, что это должен быть еще один вложенный объект внутри вопросов. как тридцать уровней.
Пример :
варианты вопросов для теста.
поскольку я хочу вызвать это в своем шаблоне блейда, на самом деле я вызываю этот способ
<body>
@foreach($quiz as $item)
<h1>{{$item->name}}</h1>
@foreach($item->questions as $quest)
<p>{{$quest->question}}</p>
@endforeach
@endforeach
</body>
это возвращает меня :
Бразилия
Президент ?
Еда ?
Музыка ?
Старшинство?
Ответ №1:
Я думаю, вы ищете запрос вложенных отношений.
Я предполагаю, что вы уже настроили отношения вопросы-параметры. Вот упрощенный запрос:
Quiz::with(['questions', 'questions.options'])->get();
или проще (кредиты @lagbox) :
Quiz::with('questions.options')->get();
Комментарии:
1. Сработало как шарм, у меня нет отношений между вариантами вопросов, но я создал и, используя вашу логику, ее работу. я попытаюсь найти логику, стоящую за этим. спасибо моему другу.