2016-07-21 1 views
0

現在、BadReqeustExceptionはエラーが発生したときにjsonを返します。symfony BadRequestExceptionにさらにフィールドを追加します

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

私はこのコード

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

を使用しています。しかし、私は例外

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

をするより多くのフィールドを追加したいと私はこのようにそれを追加して返す方法を知っているわけではないのでフォーマット。

答えて

0

BadRequestHttpExceptionをスローすると、新しいExceptionクラスをBadRequestHttpExceptionの余分なフィールドで単純に拡張できます。

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

+0

の延長についての詳細を読むことができる私はあなたのようでしたが、それでも を返します{'code':400、 'message': 'パラメータがありません'}、まだmissingFieldを受理に渡すことができます – vibol

+0

@vibol $ missingFiledプロパティをpublicとして定義していますか?どのパッケージをシリアライズに使用しますか? (jmsシリアライザまたはsymfonyシリアライザまたは...) – Ghasrfakhri

+0

私はpublicとして公開されていない$ missingFieldをデコレートしています。 – vibol

関連する問題