Laravel增加自定义按钮,例如导入excel
参考网址:
不建议看,因为缺少关键图片
https://laravel-admin.org/docs/zh/model-grid-custom-actions#app
操作步骤一,创建一个普通操作类
php artisan admin:action Post\\你自己业务的关键字 --name="导入按钮的名字"
//示例:
php artisan admin:action Post\\ImportPhoneCase --name="导入手机病例"
- 生成类文件位置:
app/Admin/Actions/Post/你创建的文件
- 我的ImportPhoneCase 类,供参考的代码
<?php
namespace App\Admin\Actions\Post;
use Encore\Admin\Actions\Action;
use Illuminate\Http\Request;
class ImportPhoneCase extends Action
{
public $name = '导入病例';
protected $selector = '.import-post';
public function handle(Request $request)
{
// 下面的代码获取到上传的文件,然后使用`maatwebsite/excel`等包来处理上传你的文件,保存到数据库
$oFile = $request->file('file');
return $this->response()->success('Success message...')->refresh();
}
public function form()
{
$this->file('file', '请选择文件');
}
public function html()
{
//按钮的样式,你可以自定义,包括按钮名称
return <<<HTML
<i class="fa fa-plus"></i>
<a class="btn btn-sm btn-success import-post">导入病例</a>
HTML;
}
}
控制器中增加以下代码,用于显示按钮
- 控制器上方,use以下2个命名空间
use App\Admin\Actions\Post\你的按钮类文件
use Encore\Admin\Grid\Tools;
class XXXXController extends AdminController
{
......
protected function grid()
{
//增加下列代码,刷新页面即可
$grid->tools(function (Tools $tools) {
//ImportPhoneCase这是我的类,换成你的;
$tools->append(new ImportPhoneCase());
});
}
}