У меня есть контроллер:
class PageCrudController extends CrudController
{
public function search()
{
$res = parent::search();
return $res;
}
public function setup()
{
/*
|--------------------------------------------------------------------------
| CrudPanel Basic Information
|--------------------------------------------------------------------------
*/
$this->crud->setModel('App\Models\Page');
$this->crud->setRoute(config('backpack.base.route_prefix') . '/page');
$this->crud->setEntityNameStrings('page', 'pages');
$this->crud->setListView('vendor.backpack.crud.page.list');
$this->search();
/*
|--------------------------------------------------------------------------
| CrudPanel Configuration
|--------------------------------------------------------------------------
*/
// Select all roots elements with their children
$pagesTree = collect([]);
$roots = Page::where('parent_id', null)->get();
$roots->each(function ($value) use(&$pagesTree) {
$tree = $value->getDescendantsAndSelf();
$pagesTree = $pagesTree->merge($tree);
});
В контроллере у меня есть переменная $pagesTree
.Содержит отсортированные данные.Мне нужно показать его на странице просмотра списка вместо данных по умолчанию.
$this->crud->orderBy
не подходит.Потому что, как вы можете видеть, здесь у меня есть особый порядок предметов.Я получил это с помощью этого пакета https://github.com/etrepat/baum#inserting-nodes.