Это простой виджет, который построит дерево элементов на основе переданного экземпляра модели (подойдет для админки в случае, когда категорий много и они вложены друг в друга). Модель должна быть наследником AR, привязана к таблице БД, где хранится дерево (предок указывается в поле parent_id). В скором будущем появится возможность дгандропом менять позицию каждого элемента.
Выполнить команду
php composer require pistol88/yii2-tree "*"
Или добавить в composer.json
"pistol88/yii2-tree": "*",
И выполнить
php composer update
Во вью, где хотите вывести дерево, вызываете виджет:
<?=\pistol88\tree\widgets\Tree::widget(['model' => $someModel]);;?>
Кроме model, в виджет можно передать:
- parentField - наименование поля, где хранится родитель (по умолчанию 'parent_id')
- idField - наименование поля уник. идентификатора (по умолчанию 'id')
- orderField - наименование поля, по которому необходимо производить сортировку (по умолчанию false)
- updateUrl - урл ссылки на редактирование (по умолчанию 'category/update')
- viewUrl - урл на просмотр (по умолчанию 'product/index')
- viewUrlToSearch - переключатель, должен ли просмотр вести на грид с поиском (по умолчанию true)
- viewUrlModelName - наименование поисковой модели (по умолчанию 'ProductSearch')
- viewUrlModelField - наименование поля, по которому связывается искомые продукты с моделью, переданной в виджет (по умолчанию 'category_id')
- view - вьюха (по умолчанию 'index')