/** * @param Project $project * @param Tag $tags * @return \Illuminate\Contracts\View\View * @throws \Exception */ public function index(Project $project, Tag $tags) { $projects = $project->with($this->relations())->orderBy('date', 'desc')->get(); $options = ['columns' => $this->theme->setting('portfolioColumns'), 'grid' => $this->theme->setting('portfolioGrid'), 'spaced' => $this->theme->setting('portfolioSpaced')]; $tags = $projects->getUniqueTags(); return $this->theme->render('portfolio.index', ['projects' => $projects, 'options' => $options, 'tags' => $tags]); }
/** * @param Project $project * @param Request $request * @return mixed */ public function index(Project $project, Request $request) { $query = $project->with(['collaborators', 'images', 'images.sizes' => function ($query) { $query->dimension(150); }, 'translations'])->orderBy('date', 'asc'); $value = $request->get('query'); $locale = $request->get('locale'); if ($value) { $query->whereHas('translations', function ($q) use($value, $locale) { $q->where('locale', $locale); $q->where(function ($q) use($value) { $q->where('title', 'like', '%' . $value . '%')->orWhere('content', 'like', '%' . $value . '%'); }); }); } return $query->paginate(); }