我有两个实体-- User和AbstractContent,两边都有ManyToMany关系,而关联有一个属性(例如下面的类),所以我为关联创建了一个实体UserAbstractContent。
问题是,当我尝试在表(实体) 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.哪里
发布于 2015-08-27 22:43:42
你问题的答案很简单。您可能使用的是保留的列名。从外观上看,您可能正在使用MySQL。这里是保留字的列表。您可以看到单词read是一个保留字。
通过设置以下方法尝试重命名列:
class UserAbstractContent {
/**
* @ORM\Column(name="some_other_name")
*/
public $read;
}没有必要重命名实体属性,但将属性和列名匹配视为良好做法。这样生活就容易多了。因此,如果工作不多,请重命名$read以反映表的列的名称。
https://stackoverflow.com/questions/32259795
复制相似问题