Я тип формы, которая выглядит следующим образом:Symfony2 валидация дата не удается
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('birthdate', 'date'));
}
Мой валидатор:
Foo\BarBundle\Model\User\Profile:
properties:
birthdate:
- NotNull:
message : label.null
- Date:
message: user.profile.birthdate.invalid
Мой запрос с данными запроса тела:
PUT foo.dev/user/profile
{
"user_profile" : {
"sex" : 0,
"birthdate" : {
"year" : 1983,
"month" : 6,
"day" : 23
},
"height" : 180,
"weight" : 78,
"pal" : 1.2
}
}
Это дает мне 400:
{
"code":400,
"message":"Validation Failed",
"errors":{
"children":{
"birthdate":{
"errors":[
"This value is not valid."
],
"children":{
"year":[],
"month":[],
"day":[]
}
},
}
}
То же самое происходит, если я использую это:
PUT foo.dev/user/profile
{
"user_profile" : {
"sex" : 0,
"birthdate" : "2014-01-01",
"height" : 180,
"weight" : 78,
"pal" : 1.2
}
}
Что я делаю неправильно? Pls помочь: '(
Update:
Если я использую widget
=>single_text
при добавлении поля формы, я могу успешно запросить эту конечную точку birthdate
: 1974-05-06
, но я хочу, чтобы иметь возможность, чтобы отправить более только один формат:
- Datetime объектов
- Отметка
- YYYY-MM-DD
- Массив
Я предлагаю вам использовать [преобразователи данных] (http://symfony.com/doc/current/cookbook/form/data_transformers.html). Но я думаю, что принятие нескольких форматов потребует много работы, чтобы распознать, затем проанализировать каждый формат. Удачи! –