5

laravel 4 docs göre Özel bir tepki ile bir 404 atabilir:laravel 4 - Özel Mesajları ile 404'lerin Taşıma

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

Sonra özel bir sayfa ile benim 404'ler tüm işleyebilir:

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

'İletimim' iletisini genel Laravel hata sayfasının yaptığı gibi görünüme nasıl aktarabilirim?

Teşekkürler!

+0

@totymedli İletiyi genel işleyiciden çok 'iptal' işlevinde belirtmek istedim, böylece birden çok ileti kullanabilirim. Sadece $ exception-> getMessage() 'satırını kaçırıyordum. Yardım ettiğin için teşekkür ederim. –

cevap

5

Sen İstisna parametre üzerinden

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

Not mesajınızı yakalayabilirsiniz: Kod azaltılabilir, ben netlik açısından böyle yazdım.

+0

Tam olarak ne peşimdeydim! Çok teşekkürler. –

+0

Hangi dosya (lar) ve klasör (ler) bu kodu eklemek zorunda, @LukeJoyce ?? – Pathros

+0

@pathros, eğer Laravel 4.x kullanıyorsanız, bu app.php' üzerinde olmalı, Laravel 5 için benzer olduğunu düşünüyorum. –

5

Laravel 5'te, her bir yanıt kodu için /resources/views/errors dizinindeki Blade görünümlerini sağlayabilirsiniz. Örneğin, bir 404 hatası, /resources/views/errors/404.blade.php'u kullanır.

Kılavuzda belirtilmeyen, görünümde, $exception nesnesine erişiminizin olması. Böylece, abort()'a ilettiğiniz iletiyi almak için {{ $exception->getMessage() }}'u kullanabilirsiniz.

+1

Yeteri kadar alınamıyor. Laravel'i severim, ama belgeleme için "çerçeve oku" yaklaşımı biraz sinir bozucu olabilir. – Henrik