Как поместить данные для просмотра списка страниц? - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть контроллер:

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.

...