2016-08-08 4 views
1

На данный момент стоимость возвращаются в таком формате:получает строку вместо объекта DateTime (Symfony 2.8 и даты полой формы)

var_dump($form->getData()); 

object(DateTime)#515 (3) { ["date"]=> string(19) "2016-08-03 00:00:00" ["timezone_type"]=> int(1) ["timezone"]=> string(18) "my-timezone-here" } 

Я просто хочу простое значение текста/строки.

Это определение поля

->add(
    "studentdob" 
    , "date" 
    , array(
     "attr" => array(
       "class" => "normal" 
       , "placeholder" => "YYYY-DD-MM" 
     ) 
     , "format" => "yyyy-dd-MM" 
     , "required" => false 
     , "widget" => "single_text" 
    ) 
) 

Я посмотрел вокруг сети и справочных страниц Symfony и единственное, что я могу найти, что может быть связано это «data_class». Но, глядя на примеры, которые я нашел на Symfony.com, я не думаю, что это то, что я хочу.

Благодаря

ответ

1

Вот как date field type работает в Symfony. Если вы хотите простой DATETIME строку в вашем контроллере вы должны получить его, как это:

$form->getData()->format('Y-m-d H:i:s'); 

Вы можете изменить формат даты в соответствии с вашими требованиями!

Возможно, вы захотите обработать часовой пояс. Поэтому проверьте приведенный выше document, как пройти model_timezone и view_timezone к типу поля.

+0

есть способ получить что-то вроде $ form-> getData() -> format ('Ymd H: i: s') ...-> ... localizeddate ('long', 'none', app .request.locale), если вы знаете, что я имею в виду. – mario