• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Laravel 8 przekierownie z komunikatem błędu

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
103 wizyt
pytanie zadane 23 września 2021 w PHP przez User007 Bywalec (2,420 p.)
edycja 23 września 2021 przez User007

Witam.

Mam pewien problem z przekierowaniem w raz z komunikatem błędu. Nie mogę dojść dlaczego komunikat błędu jest usuwany podczas tej operacji i finalnie w widoku nie ma żadnego komunikatu.

Oto mój kod.

Route:

Route::get('/verify-email/{id}/{hash}', [VerifyEmailController::class, '__invoke'])
                ->middleware(['signed', 'throttle:6,1', 'web'])
                ->name('verification.verify');

Oraz Controller:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\EmailVerificationRequest;
use App\Models\User;
use App\Providers\RouteServiceProvider;

class VerifyEmailController extends Controller
{
    public function __invoke(EmailVerificationRequest $request)
    {
        $user = User::findOrFail($request->route('id'));

        if ($user->hasVerifiedEmail()) {
            return redirect()->intended(route('login'))->withErrors(['verified' => "Your email address is already confirmed"]);
        }

        $user->markEmailAsVerified();

        return redirect()->intended(RouteServiceProvider::HOME.'?verified=1');
    }
}

Z góry dziękuję za pomoc.

Edit.

Mam winowajcę.

Powodem takiego zachowania było to że ten route nie był zdefiniowany w pliku "routes/web.php" tylko w osobnym.

Natomiast w "RouteServiceProvider" w metodzie "boot" mamy zdefiniowane takie polecenie.

            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));

Które dla każdego route w tym pliku dodaje z automatu middleware "web". A to odpowiada za przechowywanie MessageBag w sesji o ile mi wiadomo.

Natomiast zastanawia mnie dlaczego jeśli do route dodałem middleware "web" to nie zadziałało przekazywanie MessageBag?

Czy ktoś może mi wyjaśnić różnice pomiędzy ustawieniem middleware w provider a dodaniem go bezpośrednio do routa?

Dziękuję

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
0 odpowiedzi 119 wizyt
pytanie zadane 5 lipca 2018 w PHP przez Kazuhiro Użytkownik (910 p.)
0 głosów
0 odpowiedzi 420 wizyt
pytanie zadane 15 czerwca 2022 w PHP przez Piotr Popławski Użytkownik (610 p.)
+1 głos
1 odpowiedź 405 wizyt

93,189 zapytań

142,204 odpowiedzi

322,029 komentarzy

62,517 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2485p. - Marcin Putra
  9. 2418p. - Michal Drewniak
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...