public function scopeFilterSearch($query, $value) { $unique_key_ids = MavenFaq::where(function ($query) use($value) { $query->where('question', 'LIKE', '%' . $value . '%')->orWhere('answer', 'LIKE', '%' . $value . '%'); })->where('locale', Maven::getLocale())->lists('unique_key_id'); return $query->whereIn('id', $unique_key_ids); }
public function getAllTags($draft_filter_flag = true) { $tags = []; $faqs = MavenFaq::with('unique_key')->where('draft_flag', 0)->get(); foreach ($faqs as $faq) { if ($draft_filter_flag && $faq->unique_key->draft_flag == 1) { continue; } $maven_tags = $faq->tags; foreach ($maven_tags as $maven_tag) { if (!isset($tags[$faq->locale]) || !in_array($maven_tag->tag, $tags[$faq->locale])) { $tags[$faq->locale][] = $maven_tag->tag; } } } return collect($tags); }
private function saveSubData($unique_key_id, $request) { foreach (config('maven.locales') as $locale => $name) { $faq = MavenFaq::FirstOrNew(['unique_key_id' => $unique_key_id, 'locale' => $locale]); $faq->unique_key_id = $unique_key_id; $faq->question = $request->questions[$locale]; $faq->answer = $request->answers[$locale]; $faq->locale = $locale; $faq->save(); MavenTag::where('faq_id', $faq->id)->delete(); if (!empty($request->tags[$locale])) { $locale_tags = explode(',', $request->tags[$locale]); foreach ($locale_tags as $locale_tag) { $tag = new MavenTag(); $tag->unique_key_id = $unique_key_id; $tag->faq_id = $faq->id; $tag->tag = $locale_tag; $tag->save(); } } } }