2015-01-10 2 views
1

Почему мое исключение не попалось?Почему мое исключение не поймать в laravel уничтожить?

try { 
     \Account::destroy($id); 
     return Redirect::to("/manager/account") 
          ->with("success_message", "Item excluido com sucesso"); 
    } catch (Exception $e) { 
     return Redirect::to("/manager/account/{$id}/edit") 
         ->with("error_message", "Erro ao excluir item"); 
    } 

SQLSTATE [23000]: Integrity нарушение ограничения: 1451 Не удается удалить или обновление родительской строки:. Ограничение внешнего ключа не удается (imob_iousers, скованность users_account_id_foreign FOREIGN KEY (account_id) Лит accounts (id)) (SQL: удалить из accounts где id = 2)

+0

Попробуйте поймать '\ Exception' вместо' Exception' – lukasgeiter

+0

Ой .... !! Пространство имен !! благодаря – JoeLoco

ответ

4

В настоящее время вы улавливают класс Exception внутри текущего пространства имен. Вместо этого вам следует обратиться к глобальному типа \Exception:

catch (\Exception $e){ 
    return Redirect::to("/manager/account/{$id}/edit") 
        ->with("error_message", "Erro ao excluir item"); 
} 

Я также рекомендую вам сузить его немного вниз, вместо того, чтобы просто ловить каждое исключение. Например, вы можете поймать QueryException которые будут выброшены за нарушение ограничений и т.д.

catch(\Illuminate\Database\QueryException $e) 
-1

lukasgeiter решить мою проблему!

Попробуйте поймать \ Exception вместо Exception

 Смежные вопросы

  • Нет связанных вопросов^_^