Symfony4-未定义索引:在实体联接上
我得到一份工作 未定义索引:顺序 错误,即使从我所知道的,我做的一切都是正确的。有什么想法吗 订单回复Symfony4-未定义索引:在实体联接上,symfony,doctrine,symfony4,Symfony,Doctrine,Symfony4,我得到一份工作 未定义索引:顺序 错误,即使从我所知道的,我做的一切都是正确的。有什么想法吗 订单回复 public function findByDateAndEmployee(\DateTime $date, int $employeeId) { return $this->createQueryBuilder('o') ->select('o') ->join('o.employees' ,'e') ->whe
public function findByDateAndEmployee(\DateTime $date, int $employeeId)
{
return $this->createQueryBuilder('o')
->select('o')
->join('o.employees' ,'e')
->where('e.id = :id')
->setParameter('id',$employeeId)
->getQuery()->getSql();
}
class Orders
{
...
/**
* One Order has Many Employees.
* @ORM\OneToMany(targetEntity="Employee", mappedBy="order", cascade={"persist", "remove"}, orphanRemoval=TRUE)
*/
private $employees;
class OrderEmployees
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $orderId;
/**
* @ORM\Column(type="smallint")
*/
private $employeeId;
/**
* @ORM\ManyToOne(targetEntity="Orders", inversedBy="employees")
* @ORM\JoinColumn(name="order_id", referencedColumnName="id")
*/
private $order;
public function getId(): ?int
{
return $this->id;
}
public function getOrderId(): ?int
{
return $this->orderId;
}
public function setOrderId(int $orderId): self
{
$this->orderId = $orderId;
return $this;
}
public function getEmployeeId(): ?int
{
return $this->employeeId;
}
public function setEmployeeId(int $employeeId): self
{
$this->employeeId = $employeeId;
return $this;
}
public function getOrder(): Orders
{
return $this->order;
}
public function setOrder(Orders $order): self
{
$this->order = $order;
return $this;
}
}
订单实体
public function findByDateAndEmployee(\DateTime $date, int $employeeId)
{
return $this->createQueryBuilder('o')
->select('o')
->join('o.employees' ,'e')
->where('e.id = :id')
->setParameter('id',$employeeId)
->getQuery()->getSql();
}
class Orders
{
...
/**
* One Order has Many Employees.
* @ORM\OneToMany(targetEntity="Employee", mappedBy="order", cascade={"persist", "remove"}, orphanRemoval=TRUE)
*/
private $employees;
class OrderEmployees
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $orderId;
/**
* @ORM\Column(type="smallint")
*/
private $employeeId;
/**
* @ORM\ManyToOne(targetEntity="Orders", inversedBy="employees")
* @ORM\JoinColumn(name="order_id", referencedColumnName="id")
*/
private $order;
public function getId(): ?int
{
return $this->id;
}
public function getOrderId(): ?int
{
return $this->orderId;
}
public function setOrderId(int $orderId): self
{
$this->orderId = $orderId;
return $this;
}
public function getEmployeeId(): ?int
{
return $this->employeeId;
}
public function setEmployeeId(int $employeeId): self
{
$this->employeeId = $employeeId;
return $this;
}
public function getOrder(): Orders
{
return $this->order;
}
public function setOrder(Orders $order): self
{
$this->order = $order;
return $this;
}
}
我知道,如果我在“mappedBy”中更改变量,它会将错误消息更改为变量名,但是当您看到下面的“order”应该是mappedBy变量(至少,我认为)
订单员工实体
public function findByDateAndEmployee(\DateTime $date, int $employeeId)
{
return $this->createQueryBuilder('o')
->select('o')
->join('o.employees' ,'e')
->where('e.id = :id')
->setParameter('id',$employeeId)
->getQuery()->getSql();
}
class Orders
{
...
/**
* One Order has Many Employees.
* @ORM\OneToMany(targetEntity="Employee", mappedBy="order", cascade={"persist", "remove"}, orphanRemoval=TRUE)
*/
private $employees;
class OrderEmployees
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer")
*/
private $orderId;
/**
* @ORM\Column(type="smallint")
*/
private $employeeId;
/**
* @ORM\ManyToOne(targetEntity="Orders", inversedBy="employees")
* @ORM\JoinColumn(name="order_id", referencedColumnName="id")
*/
private $order;
public function getId(): ?int
{
return $this->id;
}
public function getOrderId(): ?int
{
return $this->orderId;
}
public function setOrderId(int $orderId): self
{
$this->orderId = $orderId;
return $this;
}
public function getEmployeeId(): ?int
{
return $this->employeeId;
}
public function setEmployeeId(int $employeeId): self
{
$this->employeeId = $employeeId;
return $this;
}
public function getOrder(): Orders
{
return $this->order;
}
public function setOrder(Orders $order): self
{
$this->order = $order;
return $this;
}
}
将订单实体中的
targetEntity=“Employee”
更改为targetEntity=“OrderEmployees”
,应该会有所帮助
从:
targetEntity:引用的目标实体的FQCN。可能是
如果两个类位于同一命名空间中,则为非限定类名
啊,该死的,我就知道这是像打字错误一样愚蠢的事情。看了30分钟,我都没想到。哈哈,多谢了!