У меня есть объект с именем SpecialOffer
У него есть реляционная сущность ManyToOne с именем SpecialOfferBusiness
, а у SpecialOfferBusiness
есть реляционная сущность ManyToMany SpecialOfferCategory
, вот пример кода.
class SpecialOffer
{
use ORMBehaviors\Translatable\Translatable;
...
/**
* @ORM\ManyToOne(targetEntity="App\Entity\SpecialOfferBusiness")
* @ORM\JoinColumn(name="special_offer_business_id", referencedColumnName="id", unique=false, nullable=true, onDelete="SET NULL")
*/
protected $business;
/**
* @ORM\Column(length=128, unique=true, nullable=true)
*/
private $slug;
}
class SpecialOfferBusiness
{
use ORMBehaviors\Translatable\Translatable;
...
/**
* @ORM\Column(name="slug", type="string", length=255, nullable=true)
*/
private $slug;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\SpecialOfferCategory")
* @ORM\JoinTable(
* name="special_offer_business_category",
* joinColumns={@ORM\JoinColumn(name="special_offer_business_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="special_offer_category_id", referencedColumnName="id", unique=false)}
* )
*/
protected $categories;
}
class SpecialOfferCategory
{
use ORMBehaviors\Translatable\Translatable;
...
/**
* @ORM\Column(name="slug", type="string", length=255, nullable=true)
*/
private $slug;
}
Iтеперь хочу искать записи SpecialOffer с SpecialOfferCategory
, например, категория может быть restaurant
Я хочу искать все SpecialOffer по категории ресторан (категория slug)
Вот что я пробовал.
$dql = '
SELECT
special_offer,
business,
business.categories
FROM
App:SpecialOffer special_offer
LEFT JOIN
special_offer.business AS business
WHERE
special_offer.enabled = :enabled AND
:category MEMBER OF business.categories
';
Это дает мне следующую ошибку
[Semantical Error] line 0, col 171 near 'categories
': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
Практически, решение, которое я искал и пробовал, дает мне различные ошибки, где я здесь ошибаюсь? как мне искать записи из специальных предложений для данной категории с реляционной иерархией SpecialOffer > SpecialOfferBusiness > SpecialOfferCategory
Спасибо.