php - Laravel ModelNotFound 异常处理与命名空间

标签 php exception laravel namespaces

我有这个问题,laravel ModelNotFound 异常处理程序捕获所有异常,不仅与 eloquent 相关。

我已添加到 global.php这段代码:

// this is default code
App::error(function(Exception $exception, $code)
{
    Log::error($exception);
});
// added code
App::error(function(ModelNotFoundException $exception)
{
    //do something, in my case redirect to 404 or whaterver
});

Controller 有这个部分代码:
namespace CompanyName\Admin;

class PromosController extends CompanyNameAdminController {

    public function show($id) {
        $promo = Promo::findOrFail($id);
    }
}

现在,如果我尝试传递不存在的 id,我将收到白页,应用程序错误中的代码不会执行。另一个问题是这个 App:error 捕获所有 Exeptions,比如没有找到 Controller 等,基本上每个 exeption。

我做错了什么?我从 Laracasts Exeptions 处理插曲中得到了这个想法,但不知何故我错过了一些东西。因为我没有从 Laravel 那里得到关于问题的反馈,所以我被卡住了。我怀疑命名空间与它有关,但我不确定..

编辑:
最后我在控制台中找到了一些反馈:
500内部服务器错误
HTML:
重新加载页面以获取源代码:http://cms.dev/admin/promos/533

最佳答案

ModelNotFoundException不在那个命名空间中,所以它没有被找到。指定限定名称:

App::error(function(Illuminate\Database\Eloquent\ModelNotFoundException $exception)
{
    //do something, in my case redirect to 404 or whaterver
});

关于php - Laravel ModelNotFound 异常处理与命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24990436/

相关文章:

php - Laravel 5 验证有效文件类型的 csv 文件错误

php - 未显示自定义内容类型的 Drupal 权限

java - 这个 try and catch 方法有什么作用?

javascript - Laravel 4.2 Vuejs

php - 在双 for 循环中使用事务

exception - 经典 ASP 错误 '80020009' 发生异常

c# - 如何为 'float method' 返回 null - 错误处理

php - 无法使 Laravel 4 的 Validator 类在框架外工作

ubuntu - Laravel 命令未找到

javascript - 在 php 项目中单击后退按钮时发出警报