【问题标题】:Neither the property "date_evenement" nor one of the methods "getDateEvenement()"既不是属性“date_evenement”也不是方法之一“getDateEvenement()”
【发布时间】:2016-08-19 09:21:12
【问题描述】:

当我尝试从没有表单构建器类的情况下创建时出现此错误

错误:属性“date_evenement”和方法之一“getDateEvenement()”、“dateEvenement()”、“isDateEvenement()”、“hasDateEvenement()”、“__get()”都不存在并且具有公共访问权限在“Upm\GeneralBundle\Entity\Evenement”类中。

而且我确信我的 Evenement Entity 类中的每件事都是正确的,但我找不到错误出现的地方。

事件实体类

<?php

namespace Upm\GeneralBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints\DateTime;

/**
  @ORM\Entity(repositoryClass="Upm\GeneralBundle\Repository   \EvenementRepository")
 */
class Evenement
{
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var  string
 *
 * @ORM\Column(name="date_evenement", type="string", length=255)
 */
private $date_evenement;

/**
 * @var string
 *
 * @ORM\Column(name="heure", type="string", length=255)
 */
private $heure;

/**
 * @var string
 *
 * @ORM\Column(name="fichier", type="string", length=255)
 */
private $fichier;

/**
 * @var string
 *
 * @ORM\Column(name="objet", type="string", length=255)
 */
private $objet;

/**
 * @var string
 *
 * @ORM\Column(name="description", type="text")
 */
private $description;

/**
 * @var int
 *
 * @ORM\Column(name="aime", type="integer",nullable=true)
 */
private $aime = 0;

/**
 * @var int
 *
 * @ORM\Column(name="non_aime", type="integer",nullable=true)
 */
private $nonAime;

/**
 * @var string
 *
 * @ORM\Column(name="responsable_evenement", type="string", length=255)
 */
private $responsable_evenement;

/**
 * @var int
 *
 * @ORM\Column(name="id_user", type="integer",nullable=true)
 */
private $id_user;


/**
 * @var string
 *
 * @ORM\Column(name="date_saisie",type="string", length=255)
 */
private $date_saisie ;


/**
 * Set date_saisie
 *
 * @param string $date_saisie
 *
 * @return Evenement
 */
public function setDate_saisie($date_saisie)
{

    $this->date_saisie=$date_saisie;

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

public  function  __construct()
{
   $this->date_saisie =date('d/m/Y G:i:s');
}

/**
 * Get id
 *
 * @return int
 */
public function getId()
{
    return $this->id;
}

/**
 * Set date_evenement
 *
 * @param string $date_evenement
 *
 * @return Evenement
 */
public function setDate_evenement($date_evenement)
{

    $this->date_evenement = $date_evenement;

    return $this;
}

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

/**
 * Set heure
 *
 * @param string $heure
 *
 * @return Evenement
 */
public function setHeure($heure)
{
    $this->heure = $heure;

    return $this;
}

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

/**
 * Set fichier
 *
 * @param string $fichier
 *
 * @return Evenement
 */
public function setFichier($fichier)
{
    $this->fichier = $fichier;

    return $this;
}

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

/**
 * Set objet
 *
 * @param string $objet
 *
 * @return Evenement
 */
public function setObjet($objet)
{
    $this->objet = $objet;

    return $this;
}

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

/**
 * Set description
 *
 * @param string $description
 *
 * @return Evenement
 */
public function setDescription($description)
{
    $this->description = $description;

    return $this;
}

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

/**
 * Set aime
 *
 * @param integer $aime
 *
 * @return Evenement
 */
public function setAime($aime)
{
    $this->aime = $aime;

    return $this;
}

/**
 * Get aime
 *
 * @return int
 */
public function getAime()
{
    return $this->aime;
}

/**
 * Set nonAime
 *
 * @param integer $nonAime
 *
 * @return Evenement
 */
public function setNonAime($nonAime)
{
    $this->nonAime = $nonAime;

    return $this;
}

/**
 * Get nonAime
 *
 * @return int
 */
public function getNonAime()
{
    return $this->nonAime;
}

/**
 * Set responsable_evenement
 *
 * @param string $responsable_evenement
 *
 * @return Evenement
 */
public function setResponsable_evenement($responsable_evenement)
{
    $this->responsable_evenement = $responsable_evenement;

    return $this;
}

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

/**
 * Set id_user
 *
 * @param integer $id_user
 *
 * @return Evenement
 */
public function setId_user($id_user)
{
    $this->id_user =$id_user ;

    return $this;
}

/**
 * Get id_user
 *
 * @return int
 */
public function getId_user()
{
    return $this->id_user;
}



}

我的表单函数 ajouterEvenementAction(Request $request) 是这样的:

$evn = new Evenement();
    $form = $this->createFormBuilder($evn)
->add('date_evenement',TextType::class,array('attr'=>array('class'=>'form-control pull-right','style'=>"width: 100%;",'palceholder'=>'JJ/MM/AAAA')))
->add('heure',TextType::class,array('attr'=>array('class'=>'form-control pull-right','palceholder'=>"hh:mm")))->add('fichier',FileType::class,array('attr'=>array('style'=>'display: none;','class'=>'file')))
->add('objet',TextType::class,array('attr'=>array('class'=>'form-control')))
->add('description',TextareaType::class,array('attr'=>array('class'=>'form-control')))
->add('Responsable_evenement',TextType::class,array('attr'=>array('class'=>'form-control')))
->add('Ajouter',SubmitType::class,array('label'=>"Ajouter l'Evenement",'attr'=>array('class'=>'form-control  btn btn-success')))->getForm();

$form->handleRequest($request);

    if($form->isSubmitted())
    {
        $dateEvent = $form->get("date_evenement");
        $heuerEvent = $form['heure']->getData();
        $nomFichier = date('Ymd').''.date('gisa').'.'.$form['fichier']->getData()->guessExtension();
        $imageEvent =$nomFichier;
        $objetEvent = $form['objet']->getData();
        $descEvent = $form['description']->getData();
        $Responsable_evenement = $form['Responsable_evenement']->getData();

        $evn->setDate_evenement($dateEvent)
            ->setHeure($heuerEvent)
            ->setFichier($imageEvent)
            ->setObjet($objetEvent)
            ->setDescription($descEvent)
            ->setId_user($this->get('security.token_storage')->getToken()->getUser()->getId())
            ->setResponsable_evenement($Responsable_evenement);

        $file = $form->get('fichier')->getData();
        $name =$nomFichier;
        $dir = __DIR__.'/../../../../src/Upm/GeneralBundle/Resources/public/Uploads';

        $file->move($dir, $name) ;

        $em = $this->getDoctrine()->getManager();
        $em->persist($evn);
        $em->flush();
        return $this->redirectToRoute('home_page_admin');}

感谢大家的帮助。

【问题讨论】:

  • 除了重命名您的方法和答案建议之外,您还应该知道提交的表单已经将所有数据映射回对象。因此,不需要您在 isSubmitted 之后的所有获取/设置内容。

标签: php forms symfony


【解决方案1】:

你将你的 setter 命名为

public function getDate_evenement()

虽然 Symfony 的表单组件希望您将它们命名为:

public function getDateEvenement()

无论如何,这是一种标准方法。

您应该重构您的实体,让 getter 以经典方式命名。

顺便说一句,你的约定很奇怪。

【讨论】:

    【解决方案2】:

    Symfony2 表单组件期待方法:getDateEvenement 以获取 $date_evenement 属性的默认值。相反,您有 getDate_evenement 其中形式不知道。

    【讨论】:

      猜你喜欢
      • 2014-04-30
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 2023-03-11
      • 2013-12-20
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      相关资源
      最近更新 更多