columnId(); $helper->columnUserId(); $helper->columnPunishType(); $helper->columnPunishLevel(); $helper->columnDesc(); $helper->columnAdminId(); $helper->columnCreatedAt(); $helper->columnUpdatedAt(); // 筛选器 $grid->filter(function (Grid\Filter $filter) { $helper = new FilterHelper($filter, $this); $helper->equalId(); $helper->equalUserId(); $helper->equalPunishType(); $helper->equalPunishLevel(); $helper->likeDesc(); $helper->equalAdminId(); $helper->betweenCreatedAt(); }); }); } /** * 详情页面 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new UserPunish(), function (Show $show) { $helper = new ShowHelper($show, $this); $helper->fieldUserId(); $helper->fieldPunishType(); $helper->fieldPunishLevel(); $helper->fieldDesc(); $helper->fieldAdminId(); $helper->fieldCreatedAt(); $helper->fieldUpdatedAt(); $helper->fieldDeletedAt(); // 显示关联的用户信息 $show->relation('user', '用户信息', function ($model) { $show = Show::make($model, new \App\Module\User\Models\User()); $helper = new \App\Module\User\AdminControllers\Helper\ShowHelper($show, $this); $helper->fieldUserId(); $helper->fieldUsername(); $helper->fieldStatus(); $helper->fieldCreatedAt(); $helper->fieldUpdatedAt(); return $show; }); }); } /** * 表单页面 * * @return Form */ protected function form() { return Form::make(new UserPunish(), function (Form $form) { $helper = new FormHelper($form, $this); $form->display('id', 'ID'); $helper->numberUserId(); $helper->selectPunishType(); $helper->numberPunishLevel(); $helper->textareaDesc(); $helper->numberAdminId(); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); // 保存前回调 $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不存在'); } // 设置管理员ID if (!$form->admin_id) { $form->admin_id = auth('admin')->id() ?: 0; } } }); // 保存后回调 $form->saved(function (Form $form) { // 如果是新建记录,触发惩罚处理 if ($form->isCreating()) { try { $punishType = PUNISH_TYPE::from($form->type); Punish::call_user($form->user_id, $punishType, $form->admin_id, $form->desc); return $form->response()->success('惩罚处理成功'); } catch (\Exception $e) { return $form->response()->error('惩罚处理失败: ' . $e->getMessage()); } } }); }); } }