column('id', 'ID')->sortable(); $grid->column('user_id', '用户ID')->sortable(); $grid->column('referrer_id', '推荐人ID')->sortable(); $grid->column('level', '推荐层级')->display(function ($value) { return $value == 1 ? '直推' : '间推'; })->sortable(); $grid->column('created_at', '创建时间')->sortable(); $grid->column('updated_at', '更新时间')->sortable(); $grid->filter(function (Grid\Filter $filter) { $filter->equal('id', 'ID'); $filter->equal('user_id', '用户ID'); $filter->equal('referrer_id', '推荐人ID'); $filter->equal('level', '推荐层级')->select([ 1 => '直推', 2 => '间推', ]); $filter->between('created_at', '创建时间')->datetime(); }); }); } /** * 构建详情页 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new FarmUserReferralRepository(), function (Show $show) { $show->field('id', 'ID'); $show->field('user_id', '用户ID'); $show->field('referrer_id', '推荐人ID'); $show->field('level', '推荐层级')->as(function ($value) { return $value == 1 ? '直推' : '间推'; }); $show->field('created_at', '创建时间'); $show->field('updated_at', '更新时间'); }); } /** * 构建表单 * * @return Form */ protected function form() { return Form::make(new FarmUserReferralRepository(), function (Form $form) { $form->display('id', 'ID'); $form->text('user_id', '用户ID')->required()->rules('required|integer'); $form->text('referrer_id', '推荐人ID')->required()->rules('required|integer'); $form->select('level', '推荐层级')->options([ 1 => '直推', 2 => '间推', ])->required(); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); // 验证用户ID和推荐人ID不能相同 $form->saving(function (Form $form) { if ($form->user_id == $form->referrer_id) { return $form->error('用户ID和推荐人ID不能相同'); } }); }); } }