service = new UserService(); } /** * 列表页面 * * @return Grid */ protected function grid() { return Grid::make(new UserInfoRepository(), function (Grid $grid) { $helper = new GridHelper($grid, $this); $grid->column('user_id', '用户ID')->sortable(); $grid->column('nickname', '昵称'); $grid->column('avatar', '头像')->image('', 50, 50); $grid->column('wx_id', '微信号'); $grid->column('status', '状态')->using(STATUS::getNames())->label([ STATUS::Hidden->value => 'default', STATUS::Off->value => 'warning', STATUS::Online->value => 'success', STATUS::Busily->value => 'info', ]); $grid->column('google2fa_secret', '谷歌验证器')->display(function ($value) { return $value ? '已设置' : '未设置'; }); $helper->columnCreatedAt(); $helper->columnUpdatedAt(); // 筛选器 $grid->filter(function (Grid\Filter $filter) { $helper = new FilterHelper($filter, $this); $filter->equal('user_id', '用户ID'); $filter->like('nickname', '昵称'); $filter->like('wx_id', '微信号'); $filter->equal('status', '状态')->select(STATUS::getNames()); $helper->betweenCreatedAt(); }); }); } /** * 详情页面 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new UserInfoRepository(), function (Show $show) { $helper = new ShowHelper($show, $this); $show->field('user_id', '用户ID'); $show->field('nickname', '昵称'); $show->field('avatar', '头像')->image(); $show->field('wx_id', '微信号'); $show->field('google2fa_secret', '谷歌验证器密钥'); // 显示关联的用户信息 $show->relation('user', '用户信息', function ($model) { $show = Show::make($model, new \App\Module\User\Models\User()); $helper = new ShowHelper($show, $this); $helper->fieldUserId(); $helper->fieldUsername(); $helper->fieldStatus(); return $show; }); }); } /** * 表单页面 * * @return Form */ protected function form() { return Form::make(new UserInfoRepository(), function (Form $form) { $helper = new FormHelper($form, $this); $form->display('user_id', '用户ID'); $form->text('nickname', '昵称')->rules('max:50'); $form->image('avatar', '头像') ->autoUpload() ->uniqueName() ->rules('image|max:2048'); $form->text('wx_id', '微信号')->rules('max:50'); $form->text('google2fa_secret', '谷歌验证器密钥') ->help('不修改请留空'); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); // 禁止删除 $form->disableDeleteButton(); // 保存前回调 $form->saving(function (Form $form) { // 如果是新建记录,需要检查用户ID是否存在 if ($form->isCreating()) { $userId = $form->user_id; $user = \App\Module\User\Models\User::find($userId); if (!$user) { return $form->response()->error('用户ID不存在'); } } }); }); } }