laravel-admin列表自定义删除按钮

Ambition
发布于 2023-01-18 / 4 阅读
0

laravel-admin列表自定义删除按钮

 最近接了一个单,系统用到的是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());
});

       完成以上操作,我们就可以使用我们的自定义删除按钮了。