如何在Symfony2中捕获ParamConverter异常?

lok*_*loq 4 php routes exception symfony doctrine-orm

这是我得到的例外:

虽然预计至少有一行,但未找到查询结果.

当在数据库中找不到用户标识时,我基本上得到了该异常.这是我的路线:

localhost/../user/18
Run Code Online (Sandbox Code Playgroud)

和我的控制器中的代码:

public function showAction(User $user){
    // .. 
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用内核事件异常来处理这个问题,但有没有更简单的方法来捕获ParamConverter生成的异常?

小智 17

在某些情况下,如果找不到对象,则手动抛出异常很有用.如果通过向param添加默认值找不到实体,则可以告诉操作跳过抛出异常.

例:

public function showUser(User $user = null) {
    if (empty($user)) {
        throw new CustomExceptionYouWant();
    }
    ...
}        
Run Code Online (Sandbox Code Playgroud)