2016-07-21 13 views
0

Zur Zeit gibt BadReqeustException json wie folgt zurück, wenn ich einen Fehler habe.symfony hinzufügen mehr Feld zu BadRequestException

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

Weil ich diesen Code

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

Aber ich hinzufügen möchten mehr Feld

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

Und ich weiß nicht, wie es so addieren und das Rück Format.

Antwort

0

Wenn Sie die BadRequestHttpException selbst auslösen, können Sie Ihre neue Exception-Klasse einfach um ein zusätzliches Feld von BadRequestHttpException erweitern.

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; 
    } 

} 

Und wo immer Sie die Ausnahme Verwendung Code wie folgt werfen wollen:

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

Sie können auch mehr lesen über Exception erstreckt here

+0

ich wie Sie haben, kehren aber immer noch {'code': 400, 'message': 'missing parameter'}, kann weiterhin missingField an acception übergeben – vibol

+0

@vibol Haben Sie Ihre $ missingFiled-Eigenschaft als public definiert? Welches Paket verwendest du zum Serialisieren? (jms serializer oder symfony serializer oder ...) – Ghasrfakhri

+0

Ich bin decare $ missingField als public und benutze jms serializer – vibol