Я не знаю, как прикрепить массив вариантов и категорий для одного блюда. Я получаю только одну категорию и только один вариант в качестве результата запроса. Помогите пожалуйста:)
У меня есть блюдо. Это может быть связано с некоторыми категориями с опциями.
Блюдо - Пицца
Опции Категория - Аддоны
Варианты - двойной сыр, салями, перец, лук
Блюдо - Салат
Варианты Категория - Соус
Опции - олива, горчица, сметана
У меня также есть блюдо, которое можно связать с несколькими категориями опций.
Блюдо - Специальное блюдо
Опции Опции - Addons
Варианты - двойной сыр, салями, перец, лук
Варианты категории - Соус
Варианты - олива, горчица, сметана
Пример базы данных:
Блюдо
----
(Номер, имя)
1, Pizza
2, салат
3, специальное блюдо
| 1..n
V
Dish_Options_Category_Assoc
---------------------------
(id, dish_id, category_id)
1, 1, 6
2, 2, 7
3, 3, 6
4, 3, 7
| n..1
V
Dish_Options_Category
---------------------
(идентификатор, имя)
6, Аддоны
7, соус
| 1..n
V
Dish_Options
------------
(id, category_id, name)
11, 6, двойной сыр
12, 6, салями
13, 6, перец
14, 6, лук
15, 7, оливковое
16, 7, горчица
17, 7, сметана
В репозитории dish_options_category_assoc я ищу все блюда со всеми категориями и (я хочу подключить также все параметры)
$q = $this->createQueryBuilder('d')
->where('d.dish = :did')
->join('d.categoryAssoc','ct')
->setParameters(array("did"=> $id))
->select('(d.dish) as dish_id','ct.id as cat_id','ct.name as cat_name')
->leftJoin('ct.options', 'o')
->addSelect('o.name as options')
->getQuery()
->getResult();
return $q;
Но я получаю только одну категорию и только один вариант.
Данные, которые я получил для одного «Специального блюда», к которому прикреплены 2 разные категории опций: (исправленный запрос выше)
Array (7) {
[0] => * * одна тысяча семьдесят девять
массив (4) {
["dish_id"] => "3"
["cat_id"] => "6"
["cat_name"] => "Аддоны"
["options"] => "двойной сыр"
}
[1] =>
массив (4) {
["dish_id"] => "3"
["cat_id"] => "6"
["cat_name"] => "Аддоны"
["options"] => "салями"
}
[2] => * * тысяча девяносто-три
массив (4) {
["dish_id"] => "3"
["cat_id"] => "6"
["cat_name"] => "Аддоны"
["options"] => "pepper"
}
[3] =>
массив (4) {
["dish_id"] => "3"
["cat_id"] => "6"
["cat_name"] => "Аддоны"
["options"] => "лук"
}
[4] =>
массив (4) {
["dish_id"] => "3"
["cat_id"] => "7"
["cat_name"] => "Соус"
["options"] => "оливковое"
}
[5] =>
массив (4) {
["dish_id"] => "3"
["cat_id"] => "7"
["cat_name"] => "Соус"
["options"] => "горчица"
}
[6] => * * тысячу сто двадцать одна
массив (4) {
["dish_id"] => "3"
["cat_id"] => "7"
["cat_name"] => "Соус"
["options"] => "сметана"
}
}
Может кто-нибудь сказать мне, как прикрепить категории и параметры в качестве массива для блюда?