Symfony :创建表单(生日类型)和方法时出错,说明功能正常


Symfony : Error creating form (BirthdayType) and methods note functionning proprely

我一直在尝试创建一个表单,人们可以在数据库中创建他们的帐户。

表格要求3件事:名字、姓氏和出生日期(代码中的法文文本)。

我一直有这些错误:

属性"startDateTime"和方法之一"addStartDateTime()"/"removeStartDateTime()","setStartDateTime()","startDateTime()","__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;
    }
}

以及我修改的表单创建中的代码狙击:

<?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'
        ));
    }
}
我认为

问题出在您的属性名称上。在你的班级里,有nom、prenom和datedenaissance。在形式上有nom,prenom和startDateTime。这就是窗体找不到属性 startDateTime 的原因,因为它在类中不存在。