2015-04-12 100 views
0

我試圖在數據庫中插入值,但它得到了這樣 任何錯誤能告訴我爲什麼值是null這樣的:Symfony2中插入錯誤PARAMS [NULL,NULL,NULL]

執行'INSERT INTO人名(姓名,年齡, footballteam)VALUES(?,?,?)'時發生異常並帶參數[null,null,null]: SQLSTATE [23000]:完整性約束違規:1048列名' 不能爲空

這裏是實體文件

class Person 
{ 
    /** 
    * @ORM\Column(type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 
    /** 
    * @ORM\Column(type="string", length=100) 
    */ 
    protected $name; 
     /** 
    * @ORM\Column(type="integer") 
    */ 
    protected $age; 
     /** 
    * @ORM\Column(type="string", length=100) 
    */ 
    protected $footballteam; 



    /** 
    * @return mixed 
    * */ 
    public function getID(){ 
     return $this->$id; 
    } 
    /** 
    * @param mixed $name 
    * */ 
    public function setName($name){ 
     $this->$name = $name; 
     return $this; 
    } 
    /** 
    * @return mixed 
    * */ 
    public function getName(){ 
     return $this->$name; 
    } 
    /** 
    * @param mixed $age 
    * */ 
    public function setAge($age){ 
     $this->$age = $age; 
     return $this; 
    } 
    /** 
    * @return mixed 
    * */ 
    public function getAge(){ 
     return $this->$age; 
    } 
    /** 
    * @param mixed $setFootballteam 
    * */ 
    public function setFootballteam($footballteam){ 
     $this->$footballteam = $footballteam; 
     return $this; 
    } 
    /** 
    * @return mixed 
    * */ 
    public function getFootballteam(){ 
     return $this->$footballteam; 
    } 


} 

,這裏是控制文件

public function contactAction() 
    { 

     $person = new Person(); 
     $person->setName('xuandao'); 
     $person->setAge(20); 
     $person->setFootballteam("Manchester"); 

     $em = $this->getDoctrine()->getManager(); 

     $em->persist($person); 
     $em->flush(); 
     return $this->render('rikidaolxBundle:Page:contact.html.twig'); 
    } 
+0

變化表定義的制定者和設置該欄不是女士''' null' –

+0

尚未,所有的值將爲空,我的問題是爲什麼實體類中的值爲NULL,即使在控制器類的值被添加 – Xuandao

回答

0

只是你可以添加可空的真正的名字

/** 
* @ORM\Column(type="string", length=100,nullable=true) 
*/ 
protected $name; 
2

根據您發佈實體定義你的屬性設置不正確

This

$this->$name = $name

應該

$this->name = $name;

並改變這所有的getter和你的實體如

public function setAge($age){ 
    $this->age = $age; 
    return $this; 
} 
public function getAge(){ 
    return $this->age; 
}