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



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

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

我一直有这些错误:

属性"startDateTime"和方法之一"addStartDateTime()"/"removeStartDateTime()","setStartDateTime()","startDateTime()","__set()"或"__call()"都不存在,并且在类"AppBundle\Entity\Candidats"中具有公共访问权限。

这是因为我在创建实体时没有在实体中正确声明我的类型吗?

这是我的实体类:

    <?php
namespace AppBundleEntity;
use DoctrineORMMapping as ORM;
/**
 * Candidats
 *
 * @ORMTable(name="candidats")
 * @ORMEntity
 */
class Candidats
{
    /**
     * @var string
     *
     * @ORMColumn(name="nom", type="string", length=30, nullable=false)
     */
    private $nom;
    /**
     * @var string
     *
     * @ORMColumn(name="prenom", type="string", length=30, nullable=false)
     */
    private $prenom;
    /**
     * @var DateTime
     *
     * @ORMColumn(name="datedenaissance", type="date", nullable=true)
     */
    private $datedenaissance;
    /**
     * @var integer
     *
     * @ORMColumn(name="idcand", type="integer")
     * @ORMId
     * @ORMGeneratedValue(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 AppBundleForm;
use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentOptionsResolverOptionsResolver;
use SymfonyComponentFormExtensionCoreTypeBirthdayType;
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' => 'AppBundleEntityCandidats'
        ));
    }
}
我认为

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

最新更新