我有两个实体:一个 Annonceur 可以有多个 Publicite,一个 Publicite 由一个 Annonceur 拥有:
赞助商实体:
/**
* @ORM\OneToMany(targetEntity=Publicite::class, mappedBy="annonceur", orphanRemoval=true, cascade={"remove"})
* @ORM\OrderBy({"id" = "RAND"})
*/
private $publicites;
OrderBy
注释用于以随机顺序获取Publicite。
公共实体:
/**
* @ORM\ManyToOne(targetEntity=Annonceur::class, inversedBy="publicites")
*/
private $annonceur;
在我的控制器中,当我想删除 Annonceur 上的实例时,我收到此错误消息:
Doctrine\ORM\Persisters\Exception\InvalidOrientation: Invalid order by orientation specified for App\Entity\Publicite#id in /home/sami/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Exception/InvalidOrientation.php:13
删除
OrderBy
注释可以解决问题,但我需要保留它!
RAND() 不是 Doctrine 中的原生函数,不应该这样使用。 您必须在存储库中创建一个函数并调用此自定义函数。