public function ajaxTagsRequest() { $query = Input::get('query'); $tags = Tag::select("id", "name")->where("name", "LIKE", "%" . $query . "%")->get(); $temp = array(); foreach ($tags as $tag) { $temp[] = $tag->name; } return json_encode($temp); }
public function getIndex() { $view = view('assets.list'); if (\Request::has('tags')) { $tags = explode(',', \Request::get('tags')); array_walk($tags, function (&$value, $key) { $value = trim($value); }); // TODO: Make search tags as AND instead of OR $assetIDs = \App\Models\Tag::select('media.id')->join('taggables', 'taggables.tag_id', '=', 'tags.id')->join('media', function ($join) { $join->on('media.id', '=', 'taggables.taggable_id')->where('taggables.taggable_type', '=', 'App\\Models\\Media'); })->whereIn('tags.name', $tags)->groupBy('media.id')->lists('id'); $assets = \App\Models\Media::whereIn('id', $assetIDs); foreach ($tags as $tag) { //$assets = $assets->orWhere('name', 'LIKE', '%'.$tag.'%'); } $view->assets = $assets->paginate(24); } else { $view->assets = \App\Models\Media::paginate(24); } return $view; }