Я новичок в сообществе Symfony, и у меня есть к вам вопрос!
У меня есть 3 сущности:
Homework
с id
, title
, description
Student
с id
, name
Note
с id
, note
, homework_id
, student_id
Inмой вид ветки, я хочу отобразить всю домашнюю работу (порядок за заголовком) и для каждой из них показать заметку для студента X (X является аргументом контроллера).
Я пытаюсь сделать leftjoin
в Заметке, чтобы иметьвся домашняя работа, даже та, для которой у него нет записи на bd.
Какой лучший способ сделать что-то подобное?
akro
Больше информации
Я пробую это, но мне нужно дважды использовать foreach в представлении ветки, я имею в виду, что есть лучшее решение
$ homeworksRepo = $ manager-> getRepository(Homework :: class);
$ homeworks = $ homeworksRepo -> findByAll ();
$ notesRepo = $ manager-> getRepository (Note :: class);
$ notes = $ notesRepo-> findByStudent ($ student);
вернуть $ this-> render ('vew.html.twig', ['homeworks' => $ homeworks, 'notes' => $ notes,]);
Я пытаюсь использовать queryBuilder, ноя получаю только домашнее задание с пометкой в результате.
Я пытаюсь с queryBuilder и левое соединение, в результате получить что-то вроде этого
$ res [0]=> Объект домашней работы 1
$ res [1] => Объект заметки 1
$ res [2] => Объект домашней работы 2
$ res [3] => Нуль
$ res [4]=> Объект домашней работы 3
$ res [5] => Объект примечания 2
$ res [6] => Объект домашней работы 4 $ res [7] => Null
$ qb = $ manager-> getRepository (Homework :: class) -> createQueryBuilder ('h');
$ qb-> leftJoin (Note :: class, 'n', 'WITH', 'n.homework = h.id ')
-> select ([' h ',' n ']);
dump ($ qb-> getQuery () -> getResult ());
хотелось бы получить
$res[0] => [Homework object1, Note object 1]
$res[1] => [Homework object2, NULL]
$res[2] => [Homework object3, Note object 2]