есть запрос Postgres
WITH RECURSIVE temp1 ( id,id_parent,name,PATH, LEVEL, myname ) AS (
SELECT T1.id,T1.id_parent, T1.name, CAST (T1.id AS VARCHAR (50)) as PATH, 1 ,
CAST (T1.name AS VARCHAR (255)) as myname
FROM t_department T1 WHERE T1.id_parent = 5 and t1.type::int = 1 and t1.hidden = 0
union
select T2.id, T2.id_parent, T2.name, CAST ( temp1.PATH ||'->'|| T2.id AS VARCHAR(50)) ,LEVEL + 1 ,
CAST ((repeat(' _ ', LEVEL+1)||T2.name) AS VARCHAR(255))
FROM t_department T2 INNER JOIN temp1 ON( temp1.id= T2.id_parent))
select * from temp1
ORDER BY PATH desc LIMIT 100
получаю
в модели могу изобразить
$dataReader = $connection->createCommand($sql)->query();
$rows = $dataReader->readAll();
for($i = 0, $cnt = count($rows); $i < $cnt; $i++) //формируем столбцы
{
$id[] = $rows[$i]['id'];
}
$criteria->addInCondition('id', $id);
так я отдам id которые отображать.
а как вывести имена с отступами и сделать сортировку по пути
UPD
сделал так
public function primaryKey()
{
return 'id';
}
генератор позволил создать контролеры и вьюшки.
но приобращении ко вьюшке получаю
CException
Mymodel содержит неверное правило проверки. Правило должно иметь имя и включать элементы для проверки.