model()->orderBy('id', 'desc'); $grid->filter(function ($filter) { $filter->column(1 / 2, function ($filter) { $filter->like('title', '文章标题'); $filter->equal('categories.id', '所属分类')->select(Category::selectOptions(function ($model) { return $model->where('status', 1)->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_LINK]); }, '所有分类')); }); $filter->disableIdFilter(); }); $grid->column('id', '#ID#'); $grid->column('cover', '封面图片')->image('', 100); $grid->column('所属分类')->display(function () { return $this->categories()->pluck('title'); })->label(); $grid->column('title', '文章标题'); $grid->column('sort', '序号')->editable(); $states = [ 'on' => ['value' => 1, 'text' => '打开', 'color' => 'primary'], 'off' => ['value' => 0, 'text' => '关闭', 'color' => 'default'], ]; $grid->column('status', '状态')->switch($states); $grid->column('created_at', '创建时间'); return $grid; } public function form() { $form = new Form(new Article); $form->text('title', '文章标题')->rules('min:2'); $form->text('origin', '来源'); $form->belongsToMany('categories', CategorySelectAble::class, __('关联分类')); $form->textarea('description', '内容简介'); // $form->list('subjoin', '附加') // ->help('只有领导班子需要添加'); $form->image('cover', '封面') ->move('images/'.date('Y/m/d')) ->removable() ->uniqueName(); $form->image('label', '图标') ->move('images/'.date('Y/m/d')) ->removable() ->uniqueName(); $form->multipleImage('pictures', '多图') ->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->datetime('created_at', '发布时间'); $form->switch('status', '状态')->states($states); $form->url('url', '外链地址'); return $form; } }