对doctorine2做出独特的约束

时间:2015-04-10 19:51:32

标签: symfony doctrine-orm

我想使用uniqueConstraint用户和课程。

 /**
 * @ORM\Table(name="ReviewSchool",uniqueConstraints={
 *     @ORM\UniqueConstraint(name="lessonid", columns={"lesson", "user"})})
 * @ORM\Entity
 * @ORM\HasLifecycleCallbacks
 */
class ReviewSchool
{

     * @ORM\ManyToOne(targetEntity="Lesson",inversedBy="reviewschool")
     * @ORM\JoinColumn(name="review_lesson", referencedColumnName="id",onDelete="cascade")
     */

     private $lesson;

     /**
      *
      * @ORM\ManyToOne(targetEntity="User",inversedBy="reviewschool")
      * @ORM\JoinColumn(name="review_user",referencedColumnName="id",onDelete="cascade")
      */
     private $user;

然而它显示

  [Doctrine\DBAL\Schema\SchemaException]                          
  There is no column with name 'lesson' on table 'ReviewSchool'. 

当然,我有一堂课#39;专栏,我该如何解决这个问题? 我误会了什么?

1 个答案:

答案 0 :(得分:1)

  

它允许提示SchemaTool在指定的表列上生成数据库唯一约束。它只在SchemaTool模式生成上下文中有意义。

所以你必须使用列名。在你的情况下:

@ORM\UniqueConstraint(columns={"review_lesson", "review_user"})}