Это будет простой вопрос для некоторых, но я не могу найти ответ в Интернете или в документации (только его варианты, которые я не хочу).Laravel/Eloquent eager loading
- Допустим, у нас есть
Question
класс - Каждый
Question
объект может необязательно иметь несколькоTag
s
Я установил классы и вещи ведут себя, как ожидалось. В настоящее время я использую:
$questions = Question::all();
Это работает, как ожидалось, однако это не нетерпеливый нагрузки.
Чтобы быть ясным: $question->tags
дает массив, который я ожидаю. Проблема отношений не существует.
Из-за новых требований я буду создавать представление, возможно, с тысячами вопросов, поэтому эта загруженная загрузка является обязательной.
я пытался использовать:
$questions = Question::with('tag')->all();
Который выдает сообщение об ошибке:
BadMethodCallException в Builder.php линии 2345: Вызов неопределенной метод Осветите \ Database \ Query \ Builder :: all()
Каждое учебное пособие или способ загрузки в Google, либо указывает идентификатор, либо является учебным пособием о том, как ТОЛЬКО показывать родителям с детьми.
Я просто хочу «всех и своих детей».
Это должно быть легко .. кто-нибудь знает, как это сделать?
Благодаря Rick
Они уже определены. Это не тот шаг, с которым я столкнулся. Быть ясным. Я уже могу правильно запросить объекты. Теги $ question-> дают мне массив. Просто загружается LAZY. Я хочу обеспечить загрузку EAGER. – elb98rm
'$ questions = Question :: with ('tag') -> get();' дает: 'BadMethodCallException в строке Builder.php 2345: вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: tag()' – elb98rm
'$ questions = Question :: with ('tags') -> get();' (это должны быть теги not tag = для имени функции внутри модели вопроса) –