2016-09-02 186 views
3

我想重寫Laravel Backpack CRUD包的CRUD視圖,因爲我想對佈局進行小的更改。但顯然我不想更改CRUD包本身。有這樣做的優雅嗎?覆蓋CRUD視圖

回答

2

改變加載任何意見之前,揹包Laravel檢查您resources/views/vendor/backpack/crud文件夾,看看如果您有任何自定義視圖。如果你不這樣做,它只會加載包中的視圖。

如果要覆蓋一個刀片文件所有 CRUDS,你可以把一個文件在正確的文件夾中的正確的名稱。看看how the files are organized in the package

如果您想爲一個CRUD覆蓋刀片文件,請使用Sachin's solution

+0

工程就像一個魅力,謝謝。 –

5

在您的控制器正在擴展Backpack\CRUD\app\Http\Controllers\CrudController您需要重寫您想要更改的索引,創建,編輯等方法。所有方法都在 -

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); 
} 
+0

你能評論一下你創建的文件名和路徑嗎?如果這是更新書籍模型記錄,那麼刀片模板是否位於'/ resources/views/vendor/backpack/crud/book/edit.blade.php'中?我還沒有完成它。 – Dubby

+0

我解決了它。在我的情況下,我想編輯課程記錄,所以我在'/ resources/views/course/edit.blade.php'中創建了一個文件,並用'view('course.edit')'調用了這個文件。 – Dubby

0

發現甚至沒有覆蓋指數()方法, 只使用$這 - 辦法> 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');