2016-07-21 2 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); 

Вы также можете прочитать больше о расширении Exception here

+0

Я сделал, как ты, но все-таки вернуться {'code': 400, 'message': 'missing parameter'}, все равно может пройти missingField для принятия – vibol

+0

@vibol, вы определили свой ресурс $ missingFiled как общедоступный? какой пакет вы используете для сериализации? (сериализатор jms или сериализатор симфоний или ...) – Ghasrfakhri

+0

Я decare $ missingField как открытый и использующий сериализатор jms – vibol

Смежные вопросы