2017-06-14 10 views
0

これはかなり一般的なエラーのようですが、私の問題を修正した後では解決できませんでした。 私はいくつかのDateTimeフィールドを保持するエンティティを持っています。彼らは私のMySQLデータベースにDATETIMEと宣言されています。 ここに私のエンティティが関心Symfony文字列のメンバ関数format()への呼び出し

/** 
    * @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 
      ) 
      { 

エラー:文字列のメンバ関数形式()への呼び出し

Symfonyが納得していると思われ、日付を文字列として保存したいと思っていますが、理由を理解できません。 ご協力いただきありがとうございます。

+0

メソッド 'getDateOuvertureDossier'が' string'か '\ DateTime'を返すかどうか確認できますか? –

+0

setDateOuvertureDossierを設定するときには、string.RegardsではなくdateTimeオブジェクトを設定する必要があります。 – Albeis

+0

@AlvinBunkはい、このような新しいDateTime($ this-> DateOuverture)のようなゲッターで新しいDateTimeオブジェクトを返そうとしました。次のエラーが表示されます:DateTime :: __ construct()は、パラメータ1が文字列であり、与えられたオブジェクトであると考えています。それはゲッターがDateTimeオブジェクトを返すことです。 –

答えて

1

フォーマット()を削除しようとしましたが、$ DateTimeOuvertureDossierを渡しましたか?

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

彼は推測として知られているものであり、簡単に投票につながる可能性があります。 $ DateTimeOuvertureDossierはdatetimeオブジェクトでなければなりません。それが他の場所で問題を暗示していないという事実。 – Cerad

+0

フォーマットメソッドを削除しようとしました。唯一のことは、コントローラ用に最初に投稿したすべてのコードが役に立たなくなることです。私が更新したコードを見てください。私はオブジェクトをダンプし、実際にはDateTimeオブジェクトです。さて、日付はフォームから設定されていますが、私はまだエラーを受け取ります。 –

関連する問題