laravel-admin grid 文字缩略处理 Ⅱ

通过用插件的方式来实现,如果要用多次,这种好些

Posted by 昆山吴彦祖 on 2020.06.03

之前写了一个直接通过display字段嵌入的


1、新建一个laravel-admin 插件

namespace App\Admin\Extensions;

use Encore\Admin\Admin;
use Encore\Admin\Grid\Displayers\AbstractDisplayer;
use Illuminate\Support\Str;

class Popover extends AbstractDisplayer
{
    public function display($placement = 'bottom',$number=10)
    {
		$words = Str::limit($this->value,$number);
        Admin::script("$('[data-toggle=\"popover\"]').popover()");

        return <<<EOT
<button type="button"
    class="btn btn-secondary"
    title="详细信息"
    data-container="body"
    data-toggle="popover"
    data-placement="$placement"
    data-content="{$this->value}"
    >
	$words
</button>

EOT;

    }
}


2、初始化绑定

编辑bootstrap.php  

use App\Admin\Extensions\Popover;
use Encore\Admin\Grid\Column;

Column::extend('popover', Popover::class);


3、使用

$grid->column('remark', __('Remark'))->popover('bottom',20);
// 参数1 弹出位置,参数2 显示缩率文字数目(中文占2个)


laravel_admin