type; return Grid::make(new self::$repository, function (Grid $grid) use ($type) { if ($type) { $grid->model()->where('type', $type); } $grid->column('id', 'ID')->sortable(); $grid->column('name', '种子名称'); $grid->column('type', '种子类型')->display(function ($value) { return "" . SEED_TYPE::getName($value) . ""; }); $grid->column('item_id', '产出物品')->display(function ($value) { if (empty($value)) { return '-'; } try { $item = \App\Module\GameItems\Models\Item::find($value); if ($item) { return "{$item->name} ID: {$item->id}"; } } catch (\Exception $e) { // 忽略异常 } return $value; }); $grid->column('min_output', '产出范围')->display(function () { return "{$this->min_output} - {$this->max_output}"; }); $grid->column('created_at', '创建时间')->sortable(); $grid->quickSearch(['id', 'name']); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->like('name', '种子名称'); $filter->equal('type', '种子类型')->select(SEED_TYPE::getAll()); $filter->equal('item_id', '产出物品ID'); $filter->between('min_output', '最小产出'); $filter->between('max_output', '最大产出'); }); $grid->paginate(10); $grid->disableActions(); }); } /** * 获取模型类名 * * @return string */ public function getModel(): string { return FarmSeed::class; } /** * 获取模型选择ID字段 * * @return string */ public function getModelSelectId(): string { return 'id'; } /** * 获取模型显示名称字段 * * @return string */ public function getModelViewName(): string { return 'name'; } }