5

Według laravel 4 docs mogę rzucić 404 z odpowiedzią niestandardowe:laravel 4 - Postępowanie błędy 404 Z niestandardowych komunikatów

App::abort(404, 'My Message'); 

I może wtedy obsługiwać wszystkie moje błędy 404 z niestandardowej strony:

App::missing(function($exception) 
{ 
    return Response::view('errors.missing', array(), 404); 
}); 

Jak mogę przekazać "Moja wiadomość" do widoku w taki sam sposób, jak robi to ogólna strona błędu Laravel.

Dzięki!

+0

@totymedli Chciałem określić komunikat w funkcji "Przerwij", zamiast w ogólnej procedurze obsługi, aby móc korzystać z wielu wiadomości. Właśnie brakowało linii '$ exception-> getMessage()'. Dzięki za pomoc. –

Odpowiedz

5

Można złapać wiadomość poprzez parametr wyjątków

App::missing(function($exception) 
{ 
    $message = $exception->getMessage(); 
    $data = array('message', $message); 
    return Response::view('errors.missing', $data, 404); 
}); 

Uwaga: Kod może zostać zmniejszona, napisałem to tak dla jasności.

+0

Dokładnie to, czego szukałem! Dziękuję bardzo. –

+0

W jakich plikach i folderach musisz dodać ten kod, @LukeJoyce? – Pathros

+0

@pathros, jeśli korzystasz z Laravel 4.x, to powinno być na 'app.php', myślę, że jest podobne dla Laravel 5. –

5

W Laravel 5 można wyświetlać widoki ostrzy dla każdego kodu odpowiedzi w katalogu /resources/views/errors. Na przykład błąd 404 użyje /resources/views/errors/404.blade.php.

W podręczniku nie ma wzmianki o tym, że wewnątrz widoku masz dostęp do obiektu $exception. Możesz więc użyć {{ $exception->getMessage() }}, aby otrzymać wiadomość, którą przekazałeś do abort().

+1

Nie można wystarczająco przegłosować. Podoba mi się Laravel, ale to podejście "czytaj do ram" podejście do dokumentacji może być trochę frustrujące. – Henrik