where('type', StaticPageType::contact)->firstOrFail(); return view('fo.pages.contact', compact('products', 'staticPageModel')); } /** * Submit contact form * * @param \App\Http\Requests\Fo\ContactFormRequest $request * @return \Illuminate\Http\RedirectResponse */ public function contactSubmit(ContactFormRequest $request): RedirectResponse { // * Cast expected types $validated = $request->validated(); Arr::set($validated, 'type', ObjectEnum::make(Arr::get($validated, 'type'))); Arr::set($validated, 'product', Product::query() ->where('id', Arr::get($validated, 'product'))->first()); $expiration_date = Arr::get($validated, 'expiration_date'); Arr::set($validated, 'expiration_date', $expiration_date ? Carbon::createFromFormat('Y-m-d', $expiration_date) : null); $receiver_emails = \explode(",", config(\sprintf("mail.contact.%s", $validated->type->value()))); foreach ($receiver_emails as $email) { Mail::to($email)->send(new SendContactMail((object)$validated)); } return redirect()->route('fo.contact') ->with( 'success', trans( 'Bonjour, votre message a bien été transmis. Cordialement, l’équipe :app_name.', [ 'app_name' => config('app.name') ] ) ); } }