Привет. Компонент. backend/actions/file.php. Всё лишнее опустив:
class actionTestFile extends cmsAction {
public function run($ajax = false) {
$grid = $this->loadDataGrid('file');
if ($ajax){
$cats = $this->model->getCatsTree('test_cats',false); //тут массив с категориями и под-категориями. Сортировка по ns_left
foreach($cats as $item){
$tree_nodes[] = array(...); // тут готовится массив для $grid
}
}
return $this->cms_template->renderGridRowsJSON($grid, $tree_nodes);
}
}
}
Всё работает, как и положено. Но понадобилось до передачи в $grid вносить изменения в одно из полей под-категорий. И вот тут возникла загвоздка. При получении полей под-категорий в цикле, возвращается только первая под-категория.
foreach($cats as $item){
$parent = $this->model->getItemByField('test_cats','parent_id',$item['id']);
}
Хотелось бы понять почему? Ведь по идеи, это цикл и при каждой итерации $item['id'] меняется. И если под-категорий три, то и массивов должно быть три. Задачу решил другим запросом, но вопрос тем не менее остался.