Symfony在字符串上调用成员函数format()

时间:2017-06-14 23:17:49

标签: php mysql symfony datetime

我知道这似乎是一种非常常见的错误类型,但在查看之后,我无法找到解决问题的方法。 所以我有一个实体,它拥有几个DateTime字段。它们在我的MySQL数据库中声明为DATETIME。 这里我的实体只是感兴趣的部分

 /**
    * @Doctrine\Column(name="dateOuvertureDossier", type="datetime", nullable=false)
    * @Assert\NotBlank(message="Le date est obligatoire.")
    */
    private $dateOuvertureDossier;
/**
* @Doctrine\Column(name="premiereDateEvaluation", type="datetime", nullable=false)
* @Assert\NotBlank(message="Le date est obligatoire.")
*/
private $premiereDateEvaluation;

/**
* @Doctrine\Column(name="deuxiemeDateEvaluation", type="datetime", nullable=true)
*/
private $deuxiemeDateEvaluation;

/**
* @Doctrine\Column(name="troisiemeDateEvaluation", type="datetime", nullable=true)
*/
private $troisiemeDateEvaluation;

/**
* @Doctrine\Column(name="quatriemeDateEvaluation", type="datetime", nullable=true)
*/
private $quatriemeDateEvaluation;

这里我的形式只是感兴趣的部分

 $builder ->add('dateOuvertureDossier', DateTimeType::class, array(
                'required' => true,
                'input' => 'datetime'
            ))
            ->add('premiereDateEvaluation', DateTimeType::class, array(
                'required' => true,
                'input' => 'datetime'                
            ))
            ->add('deuxiemeDateEvaluation', DateTimeType::class, array(
                'required' => false,
                'input' => 'datetime'                
            ))
            ->add('troisiemeDateEvaluation', DateTimeType::class, array(
                'required' => false,
                'input' => 'datetime'                
            ))
            ->add('quatriemeDateEvaluation', DateTimeType::class, array(
                'required' => false,
                'input' => 'datetime' ))

这是我在控制器中尝试做的一个例子

 if($form->isSubmitted())
        {
            $miseAjourInfoSuiviDossier = $form->getData();

            if($miseAjourInfoSuiviDossier->getUtilisateur() != null && 
               $miseAjourInfoSuiviDossier->getCompagnieAssurance() != null &&
               $miseAjourInfoSuiviDossier->getVilleClient() != null &&
               $miseAjourInfoSuiviDossier->getNumeroDossierAssurance() != null &&
               $miseAjourInfoSuiviDossier->getNomClient() != null &&
               $miseAjourInfoSuiviDossier->getDateOuvertureDossier() != null &&
               $miseAjourInfoSuiviDossier->getPremiereDateEvaluation() != null &&
               $miseAjourInfoSuiviDossier->getGaa() != null &&
               $miseAjourInfoSuiviDossier->getEtat() !=  null
              )
            {

错误:在字符串

上调用成员函数format()

似乎Symfony感到困惑,并认为我希望将日期存储为字符串,但我无法弄清楚原因。 任何帮助将不胜感激,提前谢谢!

1 个答案:

答案 0 :(得分:2)

您是否尝试删除格式()并简单地传递$ DateTimeOuvertureDossier?像这样:

$DateTimeOuvertureDossier = $miseAjourInfoSuiviDossier->getDateOuvertureDossier();
if($DateTimeOuvertureDossier != null)
{
     $miseAjourInfoSuiviDossier->setDateOuvertureDossier($DateTimeOuvertureDossier);
}