laravel-admin 批量操作

本文介绍了在laravel-admin中实现批量操作的步骤,包括如何去除批量删除按钮以及自定义批量按钮。首先,讲解了如何定义操作类并在控制器中引入。接着,在grid中添加相应代码以展示前端样式。最后,通过在控制器中添加方法完成批量操作的功能。虽然作者经历了困扰,但最终实现了所需功能。

1.可以去掉批量删除按钮

$grid->tools(function ($tools) {
    $tools->batch(function ($batch) {
        $batch->disableDelete();
    });
});

2.自定义批量按钮 

(1)先定义操作类app/Admin/Extensions/Tools/ReleasePost.php

<?php

namespace App\Admin\Extensions\Tools;

use Encore\Admin\Grid\Tools\BatchAction;

class ReleasePost extends BatchAction
{
    protected $action;

    public function __construct($action = 1)
    {
        $this->action = $action;
    }

    public function script()
    {
        return <<<EOT

$('{$this->getElementClass()}').on('click', function() {

    $.ajax({
        method: 'get',
        url: '{$this->resource}/release',
        data: {
            _token:LA.token,
            ids: selectedRows(),
            action: {$this->action}
        },
        success: function () {
            $.pjax.reload('#pjax-container');
            toastr.success('操作成功');
        }
    });
});

EOT;

    }
}

(2)需要在调用的控制器里 调用这个类 use App\Admin\Extensions\Tools\ReleasePost;,在grid里加上下面这句

$grid->tools(function ($tools) {
	 $tools->batch(function ($batch) {
		$batch->add('通过', new ReleasePost(1));
	    $batch->add('拒绝', new ReleasePost(0));
	});
});

会出现这种样式了,前端页样式就显示出来了 

(3)在本控制器里,加上一个方法,批量操作就完成了

public function show()
    {
    	foreach ($_GET['ids'] as $key => $value) {
    		if($_GET['action'] == 0){
    			Feedbacks::where('id',$value)->update(array('id'=>$value,'status'=>'closed'));
    		}else{
    			Feedbacks::where('id',$value)->update(array('id'=>$value,'status'=>'checking'));
    		}
    		
    	}
    }

备注:这个是我研究一天才好使的,可能这是最笨的方法了,可我根据官方文档上写的一模一样扒下来,就是不好使啊,百度也查不到相关文档,若有什么好办法,期待回复

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值