2016-05-03 54 views
1

我搜索了很多,找不到任何在StackOverflow的我的問題......問題與Symfony的插入DateType場3種形式

我有這樣的結構時:(續)

$form = $this->createFormBuilder($vendedor) 
      // ... 
      ->add('datanascimento', DateType::class, [ 
       'label' =>'D.Nascimento', 
       'attr' =>['class'=>'input-sm'], 
       'format'=>'d-M-yyyy', 
       'years'=>range(1970, 2010) 
      ]) 
      // ... 
      ->getForm(); 

而且我在我的實體此CONFIGS:

//... 

/** 
    * @var \DateTime 
    * 
    * @ORM\Column(name="dataNascimento", type="date", nullable=true) 
    */ 
    private $datanascimento; 

//... 

/** 
    * Set datanascimento 
    * 
    * @param string $datanascimento 
    * 
    * @return CadPfPj 
    */ 
    public function setDatanascimento($datanascimento) 
    { 
     $this->datanascimento = $datanascimento; 

     return $this; 
    } 

    /** 
    * Get datanascimento 
    * 
    * @return string 
    */ 
    public function getDatanascimento() 
    { 
     return $this->datanascimento; 
    } 

當我嘗試插入一個新的寄存器,我得到這個錯誤:

Catchable Fatal Error: Object of class DateTime could not be converted to string 
500 Internal Server Error - ContextErrorException 

當我調試,並轉儲對象......我發現這一點:

//... 
-datanascimento: DateTime {#530 ▼ 
    +"date": "1970-01-01 00:00:00.000000" 
    +"timezone_type": 3 
    +"timezone": "America/Sao_Paulo" 
    } 
//... 

我的數據庫是MySQL的和字段類型爲datetime ... 如何配置的symfony停止發送陣列並只發送「日期」?

感謝您的幫助!

回答

0

您需要更改widgettype of form entry - 默認爲choice,但你需要textsingle_text

 ->add('datanascimento', DateType::class, [ 
      'label' =>'D.Nascimento', 
      'widget' =>'single_text',   
      'attr' =>['class'=>'input-sm'], 
      'format' =>'d-M-yyyy', 
      'years' =>range(1970, 2010) 
     ])