我有一个名为'student_assignment'的表,其中我有多个列,我在其中显示以下两个列:
这两列都是外键。
StudentId assignmentId
10 7 -> allowed
10 8 -> allowed
11 7 -> allowed
11 7 -> not allowed, the combination of 11 7 already exists in table
我在我的实体文件中尝试了这个,但它不起作用。
/**
* Webkul\CampusConnect\Entity\StudentAssignment
*
* @Table(name="student_assignment",
* uniqueConstraints={
* @UniqueConstraint(name="assignment_unique",
* columns={"student", "assignment"})
* }
* )
* @Entity
*/
请问如何在symfony 4中使用ORM实现这一点。
我有一个链接,但在Mysql中是相同的。我想要Symfony ORM的解决方案。 qazxsw poi
错误:
[语义错误]从未导入类Webkul \ CampusConnect \ En tity \ StudentAssignment中的注释“@Table”。您是否忘记为此注释添加“u se”语句?
实体:
enter link description here
你已经编辑了,但是你没有使用namespace Webkul\CampusConnect\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\Table;
/**
* Webkul\CampusConnect\Entity\StudentAssignment
*
* @ORM\Table(name="student_assignment",
* uniqueConstraints={
* @UniqueConstraint(name="assignment_unique",
* columns={"student", "assignment"})
* }
* )
* @Entity
*/
class StudentAssignment
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Webkul\CampusConnect\Entity\Student", inversedBy="studentAssignments")
* @ORM\JoinColumn(onDelete="CASCADE")
*/
private $student;
作为导入的别名,这是1号(见注释)。
然后你错过了将ORM
添加到内部配置,例如ORM
而不是@ORM\UniqueConstraint
。此外,UniqueConstraint的配置需要使用列名,而不是属性。
你没有提供连接表的两个侧面的OtM - MtO关系,但我认为它存在。你应该有:
@UniqueConstraint