2015-02-10 80 views
0

在非對象上調用成員函數格式()我的Symfony項目存在一個問題。我有許多\ DateTime的一個實體,是這樣的:錯誤:使用 DateTime

/** 
* @var \DateTime 
* 
* @ORM\Column(name="date_debut", type="datetime", length=255) 
*/ 
protected $dteDebut ; 

function getDteDebut() {return $this->dteDebut;} 

function setDteDebut(\DateTime $dteDebut) {$this->dteDebut = $dteDebut;} 

我用formBuilder與日期時間是這樣的:

$builder->add('dteDebut', 'datetime', array(
      'label' => 'Date de début :', 
      'date_widget' => 'single_text', 
      'time_widget' =>'single_text' 
     )); 

而且一個簡單的fonction用我的方式:

公共職能organiserAction( ){

$em=$this->getDoctrine()->getManager(); 
    $orga = new \CCF\CCFBundle\Entity\Organiser; 
    $form = $this->createForm(new \CCF\CCFBundle\Form\OrganiserForm(), $orga); 
    $request = $this->get('request'); 

    if ($request->getMethod() == 'POST') { 
     $form->bind($request); 
     var_dump($form->get('dteDebut')->getData()); 
     if ($form->isValid()) {     
      $em->persist($orga); 
      $em->flush(); 
      return $this->redirect($this->generateUrl('organiser_homepage')); 
     } 
    } 
    //on passe la méthode createView() à la vue pour qu'elle l'affiche 
    return $this->render('CCFBundle:Organiser:create.html.twig',array("form"=>$form->createView(),)); 
} 

當我有效的表格我有一個錯誤

Error: Call to a member function format() on a non-object

堆棧跟蹤

在供應商

/教義/ DBAL/lib中/教義/ DBAL /類型/ DateType.php在第53行 -

​​

我不明白的地方做這個錯誤, 你可以幫我嗎?

+0

奇怪的問題,bwt在orm列定義的日期時間類型我從來沒有指定長度... – Matteo 2015-02-10 09:10:10

+0

你可以顯示什麼var_dump($ form- > get('dteDebut') - > getData())給你? – 2015-02-10 09:31:11

+0

var_dump return:object(DateTime)[468] public'date'=> string'2015-02-19 01:00:00'(length = 19)public'timezone_type'=> int 3 public'timezone'=> string 'UTC'(長度= 3) – user1716552 2015-02-10 12:32:15

回答

0

好了我的壞二傳手指定...我作了一個其他屬性的錯誤......我有一個屬性與類型日期和此屬性具有類型字符串的形式...

0

試試這個:

/** 
* @var \DateTime 
* 
* @ORM\Column(name="date_debut", type="datetime", length=255) 
*/ 
protected $dteDebut ; 

function getDteDebut() {return $this->dteDebut;} 

function setDteDebut(new \DateTime $dteDebut) {$this->dteDebut = $dteDebut;} 
+0

隨着你的主張,一個「解析錯誤:語法錯誤,意外'新'(T_NEW),期待'&'或變量(T_VARIABLE)」錯誤。 – user1716552 2015-02-10 12:21:56

0

我在實體中的一個使用日期時間,太。一個改變我看到的是,我不變量是一個DateTime對象

setDteDebut($dteDebut) {...} 
+0

我也沒有在setter中指定類型進行測試,但它沒有任何改變。 – user1716552 2015-02-11 07:11:40