laravel-admin 批量操作

版权声明:zx https://blog.csdn.net/zxdf123/article/details/85601574

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'));
    		}
    		
    	}
    }

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

猜你喜欢

转载自blog.csdn.net/zxdf123/article/details/85601574