警告:当我持久保存数据时,spl_object_hash()期望参数1成为对象

时间:2015-02-19 09:12:45

标签: symfony doctrine

我正在尝试将我的数据添加到我的数据库中,我试图不使用formbuilder,在我将所有表单放入控制器,并且我的实体包含外键但我得到了这个错误: 警告:spl_object_hash()期望参数1为对象,整数在C:\ wamp \ www \ HelloWordExemple \ vendor \ doctrine \ orm \ lib \ Doctrine \ ORM \ UnitOfWork.php第1602行中给出

这是我的功能

 public function AjoutAction(Request $request)
{   $classe=new Etudiant();
$formBuilder = $this->get('form.factory')->createBuilder('form', $classe);    
$formBuilder
  ->add('prenom', 'text')
  ->add('nom', 'text')
  ->add('Cin', 'integer')
  ->add('id_classe', 'integer')
  ->add('save',      'submit')
;
$form = $formBuilder->getForm();
if ($form->handleRequest($request)->isValid()) {
    $objToPersist = $form->getData();
    $em = $this->getDoctrine()->getManager();
    $em->persist($objToPersist);
    $em->flush();
 } 
 return $this->render('MyAppSchoolBundle:Etudiant:ajout.html.twig',array(
    'form' => $form->createView(),
 ));  
 }

这是我的实体      

  namespace MyApp\SchoolBundle\Entity;
 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;
 use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

   /**
    * @ORM\Entity
    */
    class Etudiant {

   /**
    * @ORM\id
    *@ORM\GeneratedValue
    *@ORM\Column(type="integer",name="ID_Etudiant")   
    */
private $Id;
/**
 *@ORM\Column{type="string",length=255}
 */
private $prenom;
/**
 *@ORM\Column{type="string",length=255}
 */

private $nom;
/**
 *@Assert\NotBlank
 *@ORM\Column(type="integer", unique=true)
 */

private $cin; //unique ne fonctionne pas qu'avec les assert
/**
 * @ORM\ManyToOne(targetEntity="Classes",cascade={"ALL"})
 */
private $idClasse;
function getId() {
    return $this->Id;
}

function getPrenom() {
    return $this->prenom;
}

public function getNom() {
    return $this->nom;
}

public function setId($Id) {
    $this->Id = $Id;
}

public function setPrenom($prenom) {
    $this->prenom = $prenom;
}

public function setNom($nom) {
    $this->nom = $nom;
}

public function getCin() {
    return $this->cin;
}

public function setCin($cin) {
    $this->cin = $cin;
}
function getIdClasse() {
    return $this->idClasse;
}

function setIdClasse($idClasse) {
    $this->idClasse = $idClasse;
}



}

任何人都有想法吗?

1 个答案:

答案 0 :(得分:1)

正如Matteo所说,id_classe必须是对象而不是ant整数。请阅读documentation关于实体字段类型。