filter(function ($filter) { $filter->column(1 / 2, function ($filter) { $filter->like('title', '视频名称'); }); $filter->column(1 / 2, function ($filter) { $filter->like('category.id', '分类名称') ->select(Category::where([ 'status' => 1, 'type' => Category::TYPE_VIDEO, ])->pluck('title', 'id')); }); $filter->disableIdFilter(); }); $grid->column('id'); $grid->column('title', '视频名称')->width('500'); $grid->column('cover', '封面')->image(); $grid->column('link', '视频地址')->downloadable(); $grid->column('category.title', '分类名称'); $grid->column('sort', '排序'); $grid->column('created_at', '发布时间'); return $grid; } /** * Make a form builder. * * @return Form */ protected function form(): Form { $form = new Form(new Video()); $form->text('title', '视频名称')->required(); $form->select('category_id', '所属分类') ->options(function () { return Category::query() ->where('status', 1) ->where('type', Category::TYPE_VIDEO) ->pluck('title', 'id'); }) ->rules('required|min:1', [ 'required' => '必须选择所属分类', 'min' => '必须选择所属分类', ]); $form->image('cover', '封面') ->rules('image|mimes:jpeg,jpg,png') ->move('images/'.date('Y/m/d')) ->removable() ->uniqueName(); $form->file('link', '视频') ->rules(function ($form) { if ($form->model()->cover != []) { return 'nullable|mimetypes:video/avi,video/mpeg,video/mp4'; } else { return 'required|mimetypes:video/avi,video/mpeg,video/mp4'; } }) ->move('videos/'.date('Y/m/d')) ->removable() ->uniqueName(); $form->number('sort', '排序') ->default(1) ->required() ->help('数字越大越靠前'); $form->datetime('created_at', '发布时间'); return $form; } }