最近接了一个单,系统用到的是laravel-admin,其中有个需求,需要重新对删除按钮的位置往下挪,看了下官方文档,没有看到相关方法,想到了一个曲线救国的思路,就是隐藏掉原有的删除按钮,自己自定义一个,这样就可以对按钮顺序进行改变,下面跟大家分享这个方法。
一、创建按钮文件
我们在项目的action目录下创建文件,路径为Admin/Actions下,创建一个文件名为RoomDeviceDelete.php文件,代码如下
<?php
/**
* Created by PhpStorm.
* User: zhangw
* Date: 2023-05-24
* Time: 14:51
*/
namespace App\Admin\Actions;
use Encore\Admin\Actions\RowAction;
use Illuminate\Database\Eloquent\Model;
/**
* 自定义删除按钮
* Class RoomEditUrl
* @package App\Admin\Actions
*/
class RoomDeviceDelete extends RowAction
{
public $name = '删除';
private $url;
public function handle(Model $model)
{
//删除设备
RoomDeviceDelete::where("id", $model->id)->delete();
//提示成功
return $this->response()->success('删除成功.')->refresh();
}
//可以增加一个dialog()来进行互动
public function dialog()
{
$this->confirm('确定删除?');
}
}
二、列表引入自定义文件
我们在列表屏蔽掉原有的删除按钮,然后引入我们自定义的删除按钮文件,代码如下
#行操作
$grid->actions(function ($actions) use ($roomId, $roomTitle, $storeId, $storeTitle) {
// 去掉删除
$actions->disableDelete();
// 去掉查看
$actions->disableView();
// 去掉编辑
$actions->disableEdit();
// 添加删除按钮
$actions->add(new RoomDeviceDelete());
});
完成以上操作,我们就可以使用我们的自定义删除按钮了。