Symfony 对doctorine2进行唯一约束

Symfony 对doctorine2进行唯一约束,symfony,doctrine-orm,Symfony,Doctrine Orm,我想做一个独特的约束用户和教训 /** * @ORM\Table(name="ReviewSchool",uniqueConstraints={ * @ORM\UniqueConstraint(name="lessonid", columns={"lesson", "user"})}) * @ORM\Entity * @ORM\HasLifecycleCallbacks */ class ReviewSchool { * @ORM\ManyToOne(target

我想做一个独特的约束用户和教训

 /**
 * @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'. 
当然,我有“课程”专栏,我如何解决这个问题? 我误解了什么

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

所以你必须使用列名。就你而言:

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

在约束
@uniquentity(字段={“lesson”,“user”},errorPath=“lesson”,message=“your message”)