Подскажите как можно вывести данные вложенного документа?
Например мне нужно получить продукты категории:
{
"_id" : ObjectId("11b97aa654bce41356002559"),
"name" : "Test",
"images" : "test.png",
"childs" : [
{
"_id" : ObjectId("00b12aa654bce41356002559"), // под категория
"name" : "Sub Test",
"images" : "test.png",
}
]
}
Для вывода под категории я использую вот такой метод:
public function actionView($id) { // Получаем id
$category = Categories::findOne($id); // Получаем категорию ро id.. может как то изменить запрос?.
if($category == null) { // если не существует то берем под категорию
$category = Categories::findOne(['childs._id' => $id]);
$this -> setMeta($category['childs'][0]['name'], $category['childs'][0]['keywords'], $category['childs'][0]['description']);
}else {
$this -> setMeta($category -> name, $category -> keywords, $category -> description);
}
return $this -> render('products', compact('products'));
}
$category['childs'][0]['name'] //как сократить подобную запись
И если у под категории то же есть под категория то вообще пипец.
$category['childs'][0]['childs'][0]['name']
_____________
Место клизмы изменить нельзя!