columnId(); $grid->column('type', '日志类型'); $grid->column('level', '日志级别')->using([ 'debug' => '调试', 'info' => '信息', 'notice' => '通知', 'warning' => '警告', 'error' => '错误', 'critical' => '严重', 'alert' => '警报', 'emergency' => '紧急', ])->label([ 'debug' => 'default', 'info' => 'info', 'notice' => 'primary', 'warning' => 'warning', 'error' => 'danger', 'critical' => 'danger', 'alert' => 'danger', 'emergency' => 'danger', ]); $grid->column('message', '日志消息')->limit(50); $grid->column('context', '上下文')->display(function ($value) { return is_array($value) ? json_encode($value, JSON_UNESCAPED_UNICODE) : $value; })->limit(30); $grid->column('user_id', '用户ID'); $grid->column('ip', 'IP地址'); $grid->column('user_agent', '用户代理')->limit(30); $helper->columnCreatedAt(); // 禁用创建按钮 $grid->disableCreateButton(); // 禁用编辑和删除按钮 $grid->actions(function (Grid\Displayers\Actions $actions) { $actions->disableEdit(); $actions->disableDelete(); }); // 筛选器 $grid->filter(function (Grid\Filter $filter) { $helper = new FilterHelper($filter, $this); $helper->equalId(); $filter->equal('type', '日志类型'); $filter->equal('level', '日志级别')->select([ 'debug' => '调试', 'info' => '信息', 'notice' => '通知', 'warning' => '警告', 'error' => '错误', 'critical' => '严重', 'alert' => '警报', 'emergency' => '紧急', ]); $filter->like('message', '日志消息'); $filter->equal('user_id', '用户ID'); $filter->like('ip', 'IP地址'); $helper->betweenCreatedAt(); }); }); } /** * 详情页面 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new SystemLog(), function (Show $show) { $helper = new ShowHelper($show, $this); $helper->fieldId(); $show->field('type', '日志类型'); $show->field('level', '日志级别')->as(function ($value) { $levels = [ 'debug' => '调试', 'info' => '信息', 'notice' => '通知', 'warning' => '警告', 'error' => '错误', 'critical' => '严重', 'alert' => '警报', 'emergency' => '紧急', ]; return $levels[$value] ?? $value; }); $show->field('message', '日志消息'); $show->field('context', '上下文')->json(); $show->field('user_id', '用户ID'); $show->field('ip', 'IP地址'); $show->field('user_agent', '用户代理'); $helper->fieldCreatedAt(); $helper->fieldUpdatedAt(); $helper->fieldDeletedAt(); }); } }