如何仅为Company控制器自定义/覆写Laravel Backpack的form_save_buttons.blade.php
针对Company控制器自定义Backpack表单保存按钮视图
要仅让company/create页面的保存按钮横向排列,同时保留其他控制器的默认样式,你可以通过以下两种方式实现:
方法一:创建控制器专属视图文件
Backpack支持按控制器维度加载自定义视图,步骤如下:
- 在项目的
resources/views/vendor/backpack/crud/目录下,新建company子目录(这里的company需和控制器的路由slug保持一致,对应你的CompanyCrudController)。 - 复制Backpack默认的
form_save_buttons.blade.php文件到该目录,默认文件路径为vendor/backpack/crud/src/resources/views/crud/form_save_buttons.blade.php。 - 修改复制后的视图文件,移除下拉菜单结构,改为横向排列的按钮:
<div class="form-buttons"> <button type="submit" class="btn btn-primary">保存</button> <button type="submit" name="save_and_back" class="btn btn-secondary">保存并返回</button> <button type="submit" name="save_and_new" class="btn btn-success">保存并新增</button> </div> - 完成后,
company/create和company/edit页面会自动加载这个自定义视图,其他控制器仍使用默认样式。
方法二:在控制器中指定自定义视图
如果不想创建目录,可直接在CompanyCrudController的方法中指定视图路径:
public function setup() { parent::setup(); // 绑定自定义保存按钮视图 $this->crud->setSaveButtonsView('vendor.backpack.crud.company.form_save_buttons'); }
同样需要把修改好的form_save_buttons.blade.php放在resources/views/vendor/backpack/crud/company/目录下。
仅在Create页面生效的额外处理
如果只需要create页面用横向按钮,edit页面保留默认,可在控制器中分别设置:
public function create() { $this->crud->setSaveButtonsView('vendor.backpack.crud.company.form_save_buttons'); return parent::create(); } public function edit($id) { // 恢复默认视图 $this->crud->setSaveButtonsView('crud::form_save_buttons'); return parent::edit($id); }
内容的提问来源于stack exchange,提问作者Liju
相关产品推荐
相关产品推荐

