2015-02-10 81 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