column('id', 'ID')->sortable(); $grid->column('name', '名称'); $grid->column('code', '编码'); $grid->column('description', '描述')->limit(30); $grid->column('created_at', '创建时间'); $grid->column('updated_at', '更新时间'); // 添加消耗项数量统计 $grid->column('items_count', '消耗项数量')->display(function () { return GameConsumeItem::where('group_id', $this->id)->count(); }); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->like('name', '名称'); $filter->like('code', '编码'); }); }); } /** * 创建详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new GameConsumeGroupRepository(), function (Show $show) { $show->field('id', 'ID'); $show->field('name', '名称'); $show->field('code', '编码'); $show->field('description', '描述'); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); // 显示消耗项列表 $show->relation('consumeItems', '消耗项列表', function ($model) { $grid = new Grid(new \App\Module\Game\Repositorys\GameConsumeItemRepository()); $grid->model()->where('group_id', $model->id); $grid->column('id', 'ID'); $grid->column('consume_type', '消耗类型')->display(function ($type) { return \App\Module\Game\Enums\CONSUME_TYPE::getName($type); }); $grid->column('target_id', '目标ID'); $grid->column('quantity', '数量'); $grid->disableCreateButton(); $grid->disableActions(); $grid->disableBatchDelete(); $grid->disableRowSelector(); return $grid; }); }); } /** * 创建表单 * * @return Form */ protected function form() { return Form::make(new GameConsumeGroupRepository(), function (Form $form) { $form->display('id', 'ID'); $form->text('name', '名称')->required(); $form->text('code', '编码') ->required() ->creationRules(['required', 'unique:game_consume_groups,code']) ->updateRules(['required', 'unique:game_consume_groups,code,{{id}}']); $form->textarea('description', '描述'); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }