model()->orderBy('id', 'desc'); $grid->filter(function ($filter) { $filter->column(1 / 2, function ($filter) { $filter->like('title', '文章标题'); $filter->like('category.id', '所属分类')->select(Category::selectOptions(function ($model) { return $model->where('status', 1)->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]); }, '所有分类')); }); $filter->disableIdFilter(); }); $grid->column('id', '#ID#'); $grid->column('cover', '封面图片')->image('', 100); $grid->column('category.title', '所属分类'); $grid->column('title', '文章标题'); $states = [ 'on' => ['value' => 1, 'text' => '打开', 'color' => 'primary'], 'off' => ['value' => 0, 'text' => '关闭', 'color' => 'default'], ]; $grid->column('status', '状态')->switch($states); $grid->column('sort', '序号'); $grid->column('created_at', '创建时间'); return $grid; } public function form() { $form = new Form(new Article); $form->text('title', '文章标题')->rules('min:2'); $form->select('category_id', '所属分类') ->options(Category::selectOptions(function ($model) { return $model->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW]); }, '选择分类')) ->rules('required|min:1', [ 'required' => '必须选择所属分类', 'min' => '必须选择所属分类', ]); $form->text('keywords', '关键词')->rules('nullable'); $form->textarea('description', '内容简介')->rules('max:350'); $form->image('cover', '封面') ->move('images/' . date('Y/m/d')) ->removable() ->uniqueName(); $form->ueditor('content', '文章内容')->rules('required', ['required' => '详情不能为空']); $form->number('sort', '序号')->default(0)->rules('required', ['required' => '序号必须填写'])->help('倒序优先'); $states = [ 'on' => ['value' => 1, 'text' => '打开', 'color' => 'success'], 'off' => ['value' => 0, 'text' => '关闭', 'color' => 'danger'], ]; $form->switch('status', '状态')->states($states); return $form; } }