episode->name; } protected function content(Content $content, $episodeId = 0) { $this->episode = Episode::find($episodeId); return $content ->translation($this->translation()) ->breadcrumb( ['text' => $this->episode->name, 'url' => "/episodes/{$this->episode->id}/lists"], ['text' => '剧集上传'], ) ->title($this->title()) ->description('剧集上传'); } public function index(Content $content, $episodeId = 0) { return $this->content($content, $episodeId) ->body($this->grid()); } public function create(Content $content, $episodeId = 0) { return $this->content($content, $episodeId) ->body($this->form()); } public function update($episodeId, $id = 0) { $this->episode = Episode::find($episodeId); return $this->form()->update($id); } public function store($episodeId = 0) { $this->episode = Episode::find($episodeId); return $this->form()->store(); } public function edit($episodeId, Content $content, $id = 0) { return $this->content($content, $episodeId) ->body($this->form()->edit($id)); } public function destroy($episodeId, $id = 0) { $this->episode = Episode::find($episodeId); parent::destroy($id); return $this->form()->destroy($id); } /** * Make a grid builder. * * @return Grid */ protected function grid() { return Grid::make(EpisodesList::with(['episode'])->where('episodes_id', $this->episode->id), function (Grid $grid) { $grid->model()->orderBy('sort'); // $grid->column('id'); $grid->column('sort')->display(function () { return '第' . $this->sort . '集'; })->editable(true); $grid->column('episode.name', '剧集名称'); $grid->column('is_free') ->using(config('global.episode_free')) ->label(['success', 'primary'])->sortable(); $grid->column('origin_price')->editable(); $grid->column('sale_price')->editable(); $grid->column('url')->display(function () { return '视频链接'; }); $url = admin_url('/episodes/batch/' . $this->episode->id . '/upload'); $grid->tools('   批量上传'); $grid->hideColumns(['id']); $grid->batchActions([new BatchEditEpisodeList()]); $grid->disableViewButton(); }); } /** * Make a form builder. * * @return Form */ protected function form() { return Form::make(new EpisodesList(), function (Form $form) { $sort = EpisodesList::where('episodes_id', $this->episode->id)->max('sort'); $form->hidden('id'); $form->hidden('episodes_id')->value($this->episode->id); $form->number('sort')->default($sort + 1)->min(1); $form->radio('is_free') ->options(config('global.episode_free')) ->when(0, function (Form $form) { $form->number('sale_price')->min(1); })->default(1); $form->file('url') ->chunkSize(4096) ->maxSize(1024 * 1024) ->saveFullUrl() ->mimeTypes('video/*') ->uniqueName()->autoUpload() ->autoSave(false) ->removable(false) ->width(4)->required(); $form->display('created_at'); $form->disableViewButton(); $form->disableDeleteButton(); $form->disableListButton(); $form->disableEditingCheck(); $form->disableViewCheck(); $form->disableCreatingCheck(); }); } }