user(); /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Sujet> */ $sujets = $user->sujets; /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Recherche> */ $recherches = Recherche::query()->whereHas('user', function (Builder $q) use ($user) { $q->where('id', $user->id); })->with('sujet') ->limit(10) ->orderBy('created_at', 'desc') ->get(); /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Dossier> */ $dossiers = Dossier::whereHas('users', function ($q) use ($user) { $q->where('user_id', $user->id); })->with('sujet')->get(); return view('home')->with([ 'sujets' => $sujets, 'recherches' => $recherches, 'dossiers' => $dossiers ]); } /** * Envoi d'un message * * @param \App\Http\Requests\Bo\Ajax\SendContactMessageRequest $request * @return \Illuminate\Http\JsonResponse */ public function sendMessage(SendContactMessageRequest $request): JsonResponse { /** @var \App\Models\User $user */ $user = auth()->user(); foreach (config('mail.contactsList.admin') as $mail) { Mail::to($mail) ->send(new ContactMail(ContactType::from($request->type), $request->url, $request->message, $user)); } return response()->json(['status' => 'OK']); } /** * Get data by sujet * * @param \App\Models\Sujet $sujet * @return \Illuminate\Http\JsonResponse */ public function getDatasBySujet(Sujet $sujet): JsonResponse { /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Format> */ $formats = Format::withoutGlobalScope('App\Scopes\SystemScope') ->where('system', 1)->get(); $formats = $formats->merge($sujet->formats); return response()->json([ 'typesvue' => $sujet->typeVues, 'typesvariantes' => $sujet->variantes, 'formats' => $formats ]); } }