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';
}
}