/**
* @ORM\ManyToOne(targetEntity="Company")
* @JMS\Exclude()
*/
private ?Company $company = null;
как при помощи createQueryBuilder построить запрос так, чтобы возвращались поля сущности User и как подобъект только определённые поля сущности Company? Вот так:
name: "vasia",
email: "pupkin@mail.pru',
company:
id: 12
name: IBM
tel: 322-223-322
загуглить, ответ на первой строке результатов поиска
чё-то не удалось найти. может, запрос не так писал. не знаю
doctrine querybuilder partial
Вроде как можно указать какие поля селектить. Если явно укажешь, то получишь только их.
да, я пробовал с partial, не получается
The DQL hint HINT_FORCE_PARTIAL_LOAD must be used as well.
да нет. я получаю необходимые поля из компани, только они не являются подобъектом user Получается так: 0: name: "vasia", email: "pupkin@mail.pru', 1: id: 12 name: IBM tel: 322-223-322 То есть, вообще теряется принадлежность к User Запрос выглядит так: $qb = $this->createQueryBuilder('u') ->select('u, PARTIAL c.{name, id, tel}') ->innerJoin(Company::class, 'c') // , Join::WITH, 'c.id = u.company'); return $qb->getQuery()->getResult();
попробуй сделать запрос на Company::class с указанными параметрами where и join на User::class
Можно использовать @Groups({"user"}) https://symfony.com/doc/current/serializer.html#using-serialization-groups-annotations
то есть, эту аннотацию где именно писать? над полем company?
ну читани документацию по группам сериализации и все понятно будет
а как потом дать понять сериалайзеру, чтобы он брал поля, которые принадлежат к группе user?
документацию прочитай, там все об этом написано.
Обсуждают сегодня