disableCreateButton(); $grid->disableActions(); $grid->disableBatchDelete(); $grid->disableDeleteButton(); $grid->disableEditButton(); // 只保留详情按钮 $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableDelete(); $actions->disableEdit(); $actions->disableQuickEdit(); }); $grid->column('id', 'ID')->sortable(); $grid->column('user_id', '用户ID'); $grid->column('item.name', '物品名称'); $grid->column('instance_id', '实例ID'); $grid->column('quantity', '数量'); $grid->column('transaction_type', '交易类型')->display(function ($value) { return TRANSACTION_TYPE::getName($value); }); $grid->column('source_type', '来源类型'); $grid->column('source_id', '来源ID'); $grid->column('expire_at', '过期时间'); $grid->column('ip_address', 'IP地址'); $grid->column('created_at', '创建时间')->sortable(); // 筛选 $grid->filter(function ($filter) { $filter->equal('id', 'ID'); $filter->equal('user_id', '用户ID'); $filter->equal('item_id', '物品')->select( ItemItem::pluck('name', 'id') ); $filter->equal('instance_id', '实例ID'); $filter->equal('transaction_type', '交易类型')->select(TRANSACTION_TYPE::all()); $filter->like('source_type', '来源类型'); $filter->equal('source_id', '来源ID'); $filter->between('created_at', '创建时间')->datetime(); }); }); } /** * 详情页 * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { return $content ->header($this->title) ->description('详情') ->body($this->detail($id)); } /** * 详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make(ItemTransactionLog::findOrFail($id), function (Show $show) { // 禁用编辑和删除按钮 $show->panel()->tools(function ($tools) { $tools->disableEdit(); $tools->disableDelete(); }); $show->field('id', 'ID'); $show->field('user_id', '用户ID'); $show->field('item.name', '物品名称'); $show->field('instance_id', '实例ID'); $show->field('quantity', '数量'); $show->field('transaction_type', '交易类型')->as(function ($value) { return TRANSACTION_TYPE::getName($value); }); $show->field('source_type', '来源类型'); $show->field('source_id', '来源ID'); // 显示详细信息 $show->field('details', '详细信息')->as(function ($details) { if (empty($details)) { return '无'; } if (is_string($details)) { $details = json_decode($details, true); } if (is_array($details)) { $html = '
| 键 | 值 |
|---|---|
| ' . $key . ' | '; $html .= '' . (is_array($value) ? json_encode($value, JSON_UNESCAPED_UNICODE) : $value) . ' | '; $html .= '