laravel-admin gird增加复制按钮

这是一个比较常用的功能,复制内容链接地址、复制收件人信息等等

Posted by 昆山吴彦祖 on 2019.04.29

js包处理

    1、下载clipboardjs包,上传到服务器

2、修改app/admin/bootstrap.php,插入:

Admin::js('/js/clipboard.min.js');


自定义操作类

namespace App\Admin\Extensions;

use Encore\Admin\Admin;
use App\Address;

class CopyUrl
{
    protected $id;

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

    protected function script()
    {
        return <<<SCRIPT

$('.grid-copyUrl-row').on('click', function () {
console.log($(this).data('id'));
});
var urls = document.getElementsByClassName('grid-copyUrl-row');
var clipboard = new ClipboardJS(urls);
clipboard.on('success', function(e) {
    alert('复制收件地址成功!');
});
SCRIPT;
    }

    protected function render()
    {
        Admin::script($this->script());
		$address = Address::find($this->id);
		$string = $address->province.$address->city.$address->district.$address->street.' 联系人:'.$address->contact.' 联系电话:'.$address->mobile;
        return "<a class='grid-copyUrl-row' data-clipboard-text='{$string}' title='复制收件地址'><i class='fa fa-location-arrow'></i></a>";
    }

    public function __toString()
    {
        return $this->render();
    }
}


gird添加自定义按钮

//引入自定义操作类
use App\Admin\Extensions\CopyUrl;

protected function grid(){

$grid->actions(function ($actions) { $actions->append(new CopyUrl($actions->row['address_id'])); }); }




laravel_admin