我有Symfony应用程序,我使用FOSRestBundle和AngularJS。我的Symfony应用程序没有任何视图。
我想在AngularJS中用ngToast模块显示从服务器接收到的信息。
如果我创建或更新了一些东西,就很容易显示出来。但是如果服务器抛出异常呢?例如,角质客户端尝试获取具有错误ID的项,还是该用户没有权限执行此操作?在这种情况下,服务器将抛出异常,但我希望显示适当的消息。
symfony能否捕获此异常,例如将其转换为Response对象?例如,如果我没有,异常,则symfony应该捕获它并制作如下内容:
return new Response(400, "You don't have permission to acces this route");角将得到:
{
    "code": 400,
    "message": "You don't have permission to acces this route"
}有可能吗?我怎么发动汽车呢?也许我该换个方法。
发布于 2015-12-02 22:05:08
我建议采用更多的FOSRestBundle方法,即配置异常,以及是否应该显示消息:
fos_rest:
  exception:
    enabled: true
    codes:
      'Symfony\Component\Routing\Exception\ResourceNotFoundException': HTTP_FORBIDDEN
    messages:
      'Symfony\Component\Routing\Exception\ResourceNotFoundException': true假设您有一个针对特定操作的自定义AccessDeniedException,您可以创建异常并将其放入配置中。
<?php
class YouCantSummonUndeadsException extends \LogicException
{
}无论你扔到哪里:
<?php
throw new YouCantSummonUndeadsException('Denied!');您可以配置它:
    codes:
      'My\Custom\YouCantSummonUndeadsException': HTTP_FORBIDDEN
    messages:
      'My\Custom\YouCantSummonUndeadsException': true得到的结果如下:
{
    "code": 403,
    "message": "Denied!"
}我希望这能让事情更清楚!
https://stackoverflow.com/questions/34002530
复制相似问题