has('author')) { $author = $request->get('author'); $user = User::find($author); $diets = $user ? $user->author_of_diets : []; } else { $hasTypes = data_get($request->get('filter'), 'contains_type', []); $diets = QueryBuilder::for(Diet::class) ->allowedFilters([ 'name', AllowedFilter::callback('contains_type', function ($query, $v) use ($hasTypes) { return $query->containsType($hasTypes); }), AllowedFilter::scope('duration_min'), AllowedFilter::scope('duration_max'), AllowedFilter::scope('involved_min'), AllowedFilter::scope('involved_max'), ]) ->get(); } return view( 'diet/index', [ 'diets' => $diets, 'filter' => $request->get('filter'), 'hasTypes' => $hasTypes, ] ); } public function create(): View { return view('diet/edit_form'); } public function edit(Diet $diet): View { return view('diet/edit_form', ['diet' => $diet]); } public function show(Diet $diet): View { $expiresAt = now()->addHours(24); views($diet) ->cooldown($expiresAt) ->record(); return view('diet/show', ['diet' => $diet]); } }