/** * Get the validation rules that apply to the request. * * @return array */ public function rules() { $snippet = Snippet::find($this->snippet); switch ($this->method()) { case 'POST': return ['description' => 'required|unique:snippets,description', 'content' => 'required', 'namespace' => 'required', 'tags' => 'required']; case 'PUT': case 'PATCH': return ['description' => 'required|unique:snippets,description,' . $snippet->id, 'content' => 'required', 'namespace' => 'required', 'tags' => 'required']; default: break; } }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $requestData = $this->parseRequestData($request->all()); $validationRules = isset($this->validationRules['edit']) ? $this->validationRules['edit'] : $this->validationRules; $this->validateRequestData($request, $requestData, $validationRules, $this->validationMessages, $this->getCustomValidationAttributes($validationRules)); try { $resource = Snippet::find($id); if (!$resource) { $this->respondUnprocessableEntity(); } $resource->update($requestData); return $this->respondWithSuccess('Snippet was successfully modified.'); } catch (Exception $e) { return $this->respondInternalError($e->getMessage()); } }
/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update(Request $request, $id) { $input = $request->all(); if (array_key_exists('selected-tags', $input)) { $this->snippet->where('id', $id)->update(['title' => $input['title'], 'body' => $input['body']]); // スニペットにタグを紐付ける $snippet = Snippet::find($id); $snippet->tags()->detach(); $snippet->tags()->attach($input['selected-tags']); return redirect()->to("/snippet/{$id}"); } else { \Session::flash('snippetFormError', '必ずタグを選択してください'); $request->flashOnly('title', 'body'); return redirect()->back()->withInput(); } }