【列表】
获取当前行数据 (row)
$grid->column('first_name');
$grid->column('last_name');
// 不存的字段列
//display() 方法接收的匿名函数绑定了当前行的数据对象,可以在里面调用当前行的其它字段数据
$grid->column('full_name')->display(function () {
return $this->first_name.' '.$this->last_name;
});
传递参数到按钮的 URL
$grid->model()->setConstraints([
'key1' => 'v1',
'key2' => 'v2',
...
]);
use Dcat\Admin\Widgets\Card;
$grid->column('content')
->display('查看') // 设置按钮名称
->modal(function ($modal) {
// 设置弹窗标题
$modal->title('标题 '.$this->username);
// 自定义图标
$modal->icon('feather icon-x');
$card = new Card(null, $this->content);
return "<div style='padding:10px 10px 0'>$card</div>";
});
// 也可以通过这种方式设置弹窗标题
$grid->column('content')
->display('查看') // 设置按钮名称
->modal('弹窗标题', ...);
异步加载
use App\Models\Post as PostModel;
use Dcat\Admin\Support\LazyRenderable;
use Dcat\Admin\Widgets\Table;
class Post extends LazyRenderable
{
public function render()
{
// 获取ID
$id = $this->key;
// 获取其他自定义参数
$type = $this->post_type;
$data = PostModel::where('user_id', $id)
->where('type', $type)
->get(['title', 'body', 'body', 'created_at'])
->toArray();
$titles = [
'User ID',
'Title',
'Body',
'Created At',
];
return Table::make($titles, $data);
}
}
$grid->post->display('View')->modal('Post', Post::make(['post_type' => 2]));
// 可以在闭包内返回异步加载类的实例
$grid->post->modal(function ($modal) {
$modal->title('自定义弹窗标题');
// 允许在闭包内返回异步加载类的实例
return Post::make(['title' => $this->title]);
});