并发原则symfony的问题

时间:2015-08-27 21:31:58

标签: php symfony doctrine-orm

我有两个实体UserAbstractContent,每边都有一个ManyToMany关系,一个属性(例如下面的类)用于关联,因此我为关联创建了一个实体UserAbstractContent

问题是当我尝试在表格中插入一行或多行({1}} AbstractContent时出现错误。

Class 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;

}

AbstractContent保存在数据库中,但这里没有保存UserAbstractcontent是sql错误:

// 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();

哪里

  1. 60:AbstractContentent ID
  2. 3:用户ID

1 个答案:

答案 0 :(得分:0)

你的问题的答案很简单。您可能正在使用保留列名称。从它的外观来看,你可能正在使用MySQL。这是reserved words的列表。您可以看到单词read是保留字。

尝试通过设置重命名列:

class UserAbstractContent {
   /**
    * @ORM\Column(name="some_other_name")
    */
   public $read;
}

没有必要重命名实体属性,但将属性和列名称匹配被认为是一种好习惯。它让生活变得更轻松。因此,如果不是很多工作,请重命名$read以反映表格列的名称。