Я хотел бы переопределить представления CRUD пакета CRUD Laravel Backpack, потому что я хочу внести небольшие изменения в макет. Но, очевидно, я не хочу менять сам пакет CRUD. Есть ли элегантный способ сделать это?
Переопределить представления CRUD
Ответы (3)
Перед загрузкой каких-либо представлений Backpack for Laravel проверяет вашу папку resources/views/vendor/backpack/crud
на наличие пользовательских представлений. Если вы этого не сделаете, он просто загрузит представления в пакете.
Если вы хотите перезаписать файл блейда для всех CRUDS, вы можете просто поместить файл с правильным именем в нужную папку. Взгляните на как файлы организованы в пакете а>.
Если вы хотите перезаписать файл блейда только для одного CRUD, используйте решение Сачина.
В вашем контроллере, который расширяет Backpack\CRUD\app\Http\Controllers\CrudController
, вам нужно переопределить метод, такой как index, create, edit, который вы хотите изменить. Все методы в-
Backpack\CRUD\app\Http\Controllers\CrudController
Все способы здесь. Вам нужно изменить здесь
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);
}
/resources/views/vendor/backpack/crud/book/edit.blade.php
? Я не совсем разобрался.
- person Dubby; 29.08.2017
/resources/views/course/edit.blade.php
и назвал его с помощью view('course.edit')
.
- person Dubby; 30.08.2017
Нашел способ, даже не переопределяя метод index(), просто используйте $this->crud->setListView() в методе настройки вашего CrudController, например:
$this->crud->setListView('backpack::crud.different_list', $this->data);
таким образом, он получит представление в разделе «/resources/views/vendor/backpack/crud/ Different_list.blade.php» вместо представления по умолчанию в пакете.
Помимо setListView(), также доступны setEditView(), setCreateView(), setUpdateView().... Надеюсь, поможет.
вы можете обратиться к https://laravel-backpack.readme.io/docs/crud-full-api для более подробной информации.
// 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');