/** * Finds a keyword by its keyword or creates a new one * @param $keyword * @return Keyword */ public static function findOrCreate($keyword) { $keyword = strtolower($keyword); if ($keywordObject = Keyword::where('keyword', $keyword)->first()) { return $keywordObject; } return Keyword::create(['keyword' => $keyword]); }
public function run() { Keyword::create(['id' => 1, 'keyword' => 'peace']); DB::table('keyword_question')->insert([['id' => 1, 'keyword_id' => 1, 'question_id' => 1]]); }
/** * Update the specified resource in storage. * * @param Question $question * @return Response */ public function update(Request $request, $question) { $question->keywords()->detach(); $this->validate($request, ['question' => 'required', 'answer' => 'required', 'keywords' => 'required']); $question->update($request->only('question', 'answer')); $keywords = preg_replace('/\\s+/', '', $request->get('keywords')); foreach (explode(',', $keywords) as $keyword) { $keyword = Keyword::findOrCreate($keyword); $question->keywords()->save($keyword); } return redirect('faq/' . $question->id); }