之前写了一个直接通过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个)