symfony为BadRequestException添加更多字段

时间:2016-07-21 02:52:39

标签: symfony fosrestbundle

目前,当我遇到错误时,BadReqeustException会像这样返回json。

{
   "code": 400,
   "message": "missing parameter: myField"
}

因为我使用此代码

throw new BadRequestHttpException("missing parameter: $param");

但我想在异常中添加更多字段

{
   "code": 400,
   "missing_filed": myField
   "message": "missing parameter"
}

而且我不知道如何像这种格式一样添加和返回它。

1 个答案:

答案 0 :(得分:1)

如果您自己抛出BadRequestHttpException,您只需使用BadRequestHttpException中的额外字段扩展新的Exception类。

namespace AppBundle\Exception;

use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;

class MyBadRequestHttpException extends BadRequestHttpException {

    public $missingFiled;

    public function __construct($message = null, $missingFiled = null, \Exception $previous = null, $code = 0) {
        parent::__construct($message, $previous, $code);
        $this->missingFiled = $missingFiled;
    }

}

在哪里你想抛出异常使用这样的代码:

throw new BadRequestHttpException("missing parameter", $param);

您还可以阅读有关扩展例外here

的更多信息