2016-04-21 3 views
-1

私は、人々がデータベースに自分のアカウントを作成できるフォームを作成しようとしています。symfony:フォーム(BirthdayType)の作成中にエラーが発生しました。機能が正しく機能しています

フォームは3つのものを要求します: 名字、姓および生年月日(コード中のテキスト)。

私はこれらのエラーを持っ続ける

プロパティ "startDateTime" やメソッド "addStartDateTime()"/"removeStartDateTime()"、 "setStartDateTime()"、「startDateTime()の1どちらも"、" __set() "または" __call() "が存在し、クラス" AppBundle \ Entity \ Candidats "にパブリックアクセスできます。

これは、作成したエンティティで正しく型を宣言しなかったためですか?

<?php 

namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Candidats 
* 
* @ORM\Table(name="candidats") 
* @ORM\Entity 
*/ 
class Candidats 
{ 
    /** 
    * @var string 
    * 
    * @ORM\Column(name="nom", type="string", length=30, nullable=false) 
    */ 
    private $nom; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="prenom", type="string", length=30, nullable=false) 
    */ 
    private $prenom; 

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

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="idcand", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $idcand; 



    /** 
    * Set nom 
    * 
    * @param string $nom 
    * 
    * @return Candidats 
    */ 
    public function setNom($nom) 
    { 
     $this->nom = $nom; 

     return $this; 
    } 

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

    /** 
    * Set prenom 
    * 
    * @param string $prenom 
    * 
    * @return Candidats 
    */ 
    public function setPrenom($prenom) 
    { 
     $this->prenom = $prenom; 

     return $this; 
    } 

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

    /** 
    * Set datedenaissance 
    * 
    * @param \DateTime $datedenaissance 
    * 
    * @return Candidats 
    */ 
    public function setDatedenaissance($datedenaissance) 
    { 
     $this->datedenaissance = $datedenaissance; 

     return $this; 
    } 

    /** 
    * Get datedenaissance 
    * 
    * @return \DateTime 
    */ 
    public function getDatedenaissance() 
    { 
     return $this->datedenaissance; 
    } 
public function getDateTime() 
    { 
     return $this->datedenaissance; 
    } 
    public function getStartDateTime() 
    { 
     return $this->datedenaissance; 
    } 
    public function startDateTime() 
    { 
     return $this->datedenaissance; 
    } 
    public function isStartDateTime() 
    { 
     return $this->datedenaissance; 
    } 
public function hasStartDateTime() 
    { 
     return $this->datedenaissance; 
    } 
    public function addStartDateTime() 
    { 
     return $this->datedenaissance; 
    } 
    public function removeStartDateTime() 
    { 
     return $this->datedenaissance; 
    } 
public function setStartDateTime() 
    { 
     return $this->datedenaissance; 
    } 




    /** 
    * Get idcand 
    * 
    * @return integer 
    */ 
    public function getIdcand() 
    { 
     return $this->idcand; 
    } 
} 

と私は修正フォーム作成のコードのsnipet:

<?php 

namespace AppBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolver; 
use Symfony\Component\Form\Extension\Core\Type\BirthdayType; 

class CandidatsType extends AbstractType 
{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('nom') 
      ->add('prenom') 
      ->add('startDateTime', BirthdayType::class) 
     ; 
    } 

    /** 
    * @param OptionsResolver $resolver 
    */ 
    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'AppBundle\Entity\Candidats' 
     )); 
    } 
} 
+0

なぜ同じプロパティを返すように多くのメソッドを使用していますか? ( 'return $ this-> datedenaissance;') –

+0

私はエラーメッセージを "修正"しようとしました。 – Cyberflow

答えて

4

私は問題があなたの特性の名前であると思い

は、ここに私のエンティティクラスです。あなたのクラスには、名誉、祖母、そして日常会話があります。フォームには、nom、prenom、およびstartDateTimeがあります。そのため、クラスに存在しないため、フォームはプロパティstartDateTimeを見つけられません。

関連する問題