2015-08-27 73 views
2

我有兩個實體UserAbstractContent與每邊的ManyToMany關係和一個屬性(如下面的類)的關聯,所以我創建一個實體UserAbstractContent的關聯。併發原則問題symfony

問題是當我嘗試插入一個新行AbstractContent與表中的一個或多個行(實體)UserAbstractContent我有錯誤。

類UserAbstractContent:

class UserAbstractContent 
{ 

    /** 
    * @ORM\ManyToOne(targetEntity="push\Bundle\PushBundle\Entity\AbstractContent") 
    * @ORM\JoinColumn(nullable=false) 
    */ 
    private $content; 
    //Reviser 
    /** 
    * @ORM\ManyToOne(targetEntity="push\Bundle\UserBundle\Entity\User") 
    * @ORM\JoinColumn(nullable=false) 
    */ 
    private $user; 

    /** 
    * @var boolean 
    * @ORM\Column(name="accept", type="boolean",nullable=true) 
    */ 
    private $accept; 

} 

控制器:

// I save the AbstractContent 
$em->persist($abstractContent); 
$em->flush(); 
// getUsersByphones is a method to get the users with their phone numbers 
$users = $em->getRepository("pushUserBundle:User") 
      ->getUsersByphones($contactsConverted); 
// a loop to link every user with the AbstractContent 
foreach ($users as $user) { 
    $userAbstractContent = new UserAbstractContent(); 
    $userAbstractContent->setContent($abstractContent); 
    $userAbstractContent->setUser($user); 
    $em->persist($userAbstractContent); 
} 
$em->flush(); 

的AbstractContent被保存在數據庫中,但UserAbstractcontent不在這裏保存的是SQL錯誤:

An exception occurred while executing 
'INSERT INTO UserAbstractContent(read,accept,content_id,user_id) VALUES (?,?,?,?)' 
with paramas[null,null,60,3] sql state 42000 syntax error or access violation. 

其中

  1. 60:在AbstractContentent ID
  2. 3:用戶ID

回答

0

的回答你的問題很簡單。您可能正在使用保留的列名稱。從外觀上看,你可能正在使用MySQL。這裏是reserved words的列表。您可以看到,單詞read是保留字。

試圖通過將重命名列:

​​

沒有必要重命名實體的性質,但它被認爲是很好的做法,屬性和列名匹配。它使生活變得更容易。因此,如果這不是很多工作,請將$read重命名以反映表格列的名稱。

+0

thx你這麼多ü保存我的一天,我重新命名列和像你的屬性再次建議thx – user3741442

+0

很高興我能幫上忙。乾杯! – tftd