Override CRUD views

随声附和 提交于 2019-12-03 15:18:04
tabacitu

Before loading any views, Backpack for Laravel checks your resources/views/vendor/backpack/crud folder to see if you have any custom views. If you don't, it will just load the views in the package.

If you want to overwrite a blade file for all CRUDS, you can just place a file with the right name in the right folder. Take a look at how the files are organized in the package.

If you want to overwrite a blade file for just one CRUD, use Sachin's solution.

In your controller which is extending Backpack\CRUD\app\Http\Controllers\CrudController you need to override the method like index,create,edit which you want to change. All method are in-

Backpack\CRUD\app\Http\Controllers\CrudController

All the methods are here. You need to change here

 public function index()
{
    $this->crud->hasAccessOrFail('list');

    $this->data['crud'] = $this->crud;
    $this->data['title'] = ucfirst($this->crud->entity_name_plural);

    // get all entries if AJAX is not enabled
    if (! $this->data['crud']->ajaxTable()) {
        $this->data['entries'] = $this->data['crud']->getEntries();
    }

    // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package
    // $this->crud->getListView() returns 'list' by default, or 'list_ajax' if ajax was enabled
    return view('your_view_name', $this->data);
}

Found a way not even having to override the index() method, just use $this->crud->setListView() in your setup method of your CrudController, ex:

$this->crud->setListView('backpack::crud.different_list', $this->data);

thus, it will get the view under '/resources/views/vendor/backpack/crud/different_list.blade.php' instead of the default one in the package.

Besides setListView(), setEditView(), setCreateView(), setUpdateView()....are also available. hope it helps.

you can refer to https://laravel-backpack.readme.io/docs/crud-full-api for more detail.

// use a custom view for a CRUD operation
$this->crud->setShowView('your-view');
$this->crud->setEditView('your-view');
$this->crud->setCreateView('your-view');
$this->crud->setListView('your-view');
$this->crud->setReorderView('your-view');
$this->crud->setRevisionsView('your-view');
$this->crud->setRevisionsTimelineView('your-view');
$this->crud->setDetailsRowView('your-view');
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!