2014-02-03 3 views
0

Я тип формы, которая выглядит следующим образом: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
  • Массив
+0

Я предлагаю вам использовать [преобразователи данных] (http://symfony.com/doc/current/cookbook/form/data_transformers.html). Но я думаю, что принятие нескольких форматов потребует много работы, чтобы распознать, затем проанализировать каждый формат. Удачи! –

ответ

0

Update 2 Если я использую виджет => текст, я могу отправить три суб поля формы, как и ожидалось. Но я не могу отправить эти значения в виде строки.

Тем не менее .... Я закрою это.

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