/** * 更新処理 * * @param TextDiary $textDiary * @param TextDiaryUpsertRequest $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function update(TextDiary $textDiary, TextDiaryUpsertRequest $request) { DB::transaction(function () use($request, $textDiary) { // 日記登録 $textDiary->fill($request->all()); $textDiary->save(); // カテゴリ紐付け $textDiary->textDiaryCategories()->sync($request->input('category_ids')); // Flickr紐付け更新 if ($request->has('flickr_ids')) { $textDiary->flickrs()->sync($request->input('flickr_ids')); } else { $textDiary->flickrs()->detach(); } }); // Flickerにアップロード if (!empty($request->file('picture')[0])) { $this->dispatch(new TextDiaryPictureUploader($textDiary->id, $request->file('picture'), $request->input('title'))); } return redirect()->route('textDiary.index')->with('complete', 'update'); }