本篇博客教大家如何通过修改laravel-admin源码,使添加、编辑按钮支持附带参数,从而支持我们一些特殊业务。(对于高级版本的laravel-admin编辑方法不支持)
一、自定义添加方法
我们修改vendor\encore\laravel-admin\src下的Grid.php文件,新增以下方法
public $AddUrltoCreate;
//专为URL传参使用,将URL参数带到create按钮页面
public function AddUrltoCreate($AddUrltoCreate)
{
$this->AddUrltoCreate = $AddUrltoCreate;
}
然后修改vendor\encore\laravel-admin\src\Grid\Tools下的CreateButton.php文件,重新定义按钮跳转方法:
grid->resource()}/create{$this->grid->AddUrltoCreate}"
class="btn btn-sm btn-success"
_href="{$this->grid->resource()}/create{$this->grid->AddUrltoCreate}">{$new}
调用方法
$grid->AddUrltoCreate('?test=1');
二、自定义编辑方法
我们修改vendor\encore\laravel-admin\src\Grid\Displayers下的Actions.php文件,新增以下方法
//专为URL传参使用,将URL参数带到edit编辑按钮
public $editurldetail = '';
public function AddUrltoEdit($editurldetail)
{
$this->editurldetail = $editurldetail;
}
修改editAction()方法,如下
protected function editAction(){
return <<getKey()}/edit{$this->editurldetail}" _href="{$this->getResource()}/{$this->getKey()}/edit{$this->editurldetail}">
EOT;
}
调用方法
$grid->actions(function ($actions){
$actions->AddUrltoEdit('?test=1');
});
这样我们就可以在添加、编辑按钮上附带参数,方便我们在某些场景下使用。