模式窗按需显示:通过if条件判断是否在column上添加模态窗显示
模式窗同步和异步获取数据展示
选择性添加模态窗
通过列的if判断,可以进行选择行的添加显示方式
$grid->column('remark')->if(function ($column) {
if ($this->remark) {
return $column->modal('操作内容', function ($modal) {
return CommentReview::make([
'content' => Helper::htmlEntityEncode($this->remark),
]);
});
}
});
同步数据展示
同步数据展示,页面表格渲染成功后,模态窗数据同时渲染并隐藏,触发模态窗的时候同步展示:
$grid->column('content', '专栏预览')->display(function () {
return '<a href="javascript:" style="color:#fd644e;" data-src="">查看</a>';
})->modal('专栏预览', function () {
$content = '<div>专栏标题:</div>';
$content .= '<div style="padding: 10px 15px;">' . $this->title . '</div>';
$content .= '<div style="margin-top: 20px">专栏简介:</div>';
$content .= '<div style="padding: 10px 15px;">' . $this->description . '</div>';
return "<div style='padding:10px 10px 0'>$content</div>";
});
异步数据展示
在触发模式窗的时候回通过请求服务端,获取需要展示的数据:如根据id查询数据等等
$grid->column('content', '预览')->display(function () {
return '<a href="javascript:" style="color:#fd644e;" data-src="">查看</a>';
})->modal('预览', function () {
//异步显示部分数据
return ColumnReview::make([
'columnTitle' => $this->title,
'description' => $this->description
]);
});
示例代码是通过传递title和description进行展示:也可以不传递参数,在render方法里面通过$this->getKey()获取到当前行的Id主键值,在进行数据信息的查询
<?php
namespace App\Admin\Lazy\Examine;
use Dcat\Admin\Support\LazyRenderable;
class ColumnReview extends LazyRenderable
{
public function render()
{
//$this->getKey()获取当前行的Id
//根据Id查询相关信息,输出
// TODO: Implement render() method.
$content = '<div>标题:</div>';
$content .= '<div style="padding: 10px 15px;">' . $this->columnTitle . $this->key.'</div>';
$content .= '<div style="margin-top: 20px">简介:</div>';
$content .= '<div style="padding: 10px 15px;">' . $this->description . '</div>';
return "<div style='padding:10px 10px 0'>$content</div>";
}
}
a