2016-08-08 15 views
1

Im Moment ist der Wert in diesem Format zurückgegeben wird, ist:immer einen String statt ein Datetime-Objekt (Symfony 2.8 und Datumsformularfelder)

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

Ich möchte nur einen einfachen Text/String-Wert.

Dies ist die Felddefinition

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

ich um das Netz und Symfony der Referenzseiten und das einzige, was ich sah, dass im Zusammenhang könnte finden kann, ist „data_class“. Aber wenn ich mir Beispiele ansehe, die ich bei Symfony.com gefunden habe, glaube ich nicht, dass ich das möchte.

Dank

Antwort

1

Dies ist, wie date field type Werke in symfony. Wenn Sie eine einfache Datetime-Zeichenfolge in Ihrem Controller möchten, sollten Sie es wie folgt durch:

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

Fühlen Sie sich frei, um Ihre Datumsformat wie pro Ihre Anforderung zu ändern!

Sie könnten die Zeitzone behandeln. Überprüfen Sie daher die document Verknüpfung oben für wie model_timezone und view_timezone an den Feldtyp übergeben werden.

+0

gibt es eine Möglichkeit, etwas wie $ form-> getData() -> format ('Ymd H: i: s') ...-> ... lokalisierteDatum ('lang', 'none', app .request.locale), wenn Sie wissen, was ich meine. – mario