/**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index(Request $request)
 {
     $this->validate($request, ['tag_id' => 'integer|exists:tag,id']);
     $query = Story::query();
     // Must have translation of current locale or English
     if (!$request->has('search')) {
         $query->whereHas('translations', function ($sub_query) {
             $sub_query->whereIn('locale', ['en', App::getLocale()])->whereNotNull('title');
         });
     }
     if ($request->has('search')) {
         $words = explode(" ", $request->input('search'));
         $query->whereHas('translations', function ($sub_query) use($words) {
             foreach ($words as $word) {
                 // If it is Chinese, use LIKE. Else, use full text index.
                 // http://www.regular-expressions.info/unicode.html#script
                 if (preg_match('/\\p{Han}+/u', $word)) {
                     $sub_query->where(function ($q) use($word) {
                         $q->where('title', 'like', '%' . $word . '%')->orWhere('content', 'like', '%' . $word . '%');
                     });
                 } else {
                     $sub_query->whereRaw('MATCH(title,content) AGAINST(? IN BOOLEAN MODE)', [$word . '*']);
                 }
             }
         });
     }
     if ($request->has('tag_id')) {
         $query->whereHas('tags', function ($sub_query) use($request) {
             $sub_query->where('id', $request->input('tag_id'));
         });
     }
     $stories = $query->orderBy('created_at', 'desc')->paginate(12);
     return view('pages.story.index', ['stories' => $stories]);
 }