domingo, 9 de março de 2014

Customizando mensagens de erro no Laravel 4.1

Olá galera,

Hoje vamos customizar as mensagens de erro que são exibidas pelo Laravel. Por padrão, as mensagens exibidas são algo como Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException ou Whoops, looks like something went wrong. quando o debug está setado como false.

Para realizar a alteração, abra o arquivo global.php, que se encontra dentro de app/start, e pesquise pela linha App::error(function(Exception $exception, $code).

Troque-o pelo código abaixo.

    App::error(function($exception, $code)
    {
      switch ($code)
      {
        case 403:
          return Response::view('errors.message', array('error' => '403 - Acesso proibido'), 403);

        case 404:
          return Response::view('errors.message', array('error' => '404 - Página não encontrada'), 404);

        case 500:
          return Response::view('errors.message', array('error' => '500 - Erro interno do servidor'), 500);

        default:
          return Response::view('errors.message', array('error' => 'Erro código - ' . $code), $code);
      }
    });
  

O código é bem autoexplicativo. Estamos pegando o código de resposta e passando uma mensagem para a view message.blade.php que deve ser criada dentro do diretório app/views/errors.

Dentro do arquivo message.blade.php, adicione o código abaixo.

    @extends(((Auth::check()) ? 'layouts.master' : 'layouts.autentication'))

    @section('content')
      
{{ $error }}
@stop

No meu caso estou checando se o usuário está logado e setando um layout correspondente. Esse é somente um exemplo de como customizar as messagens de erro. Faça as adequações de acordo com seu projeto.

Espero que a dica seja de grande utilidade.

Um grande abraço e até a próxima.

Nenhum comentário:

Postar um comentário