FindBy () метод "или" / "и" - PullRequest
0 голосов
/ 25 октября 2018

Как я могу использовать or в методе findBy.

Пример: у меня есть объект с id_user_one и id_user_two, и я хочу найти методом findby всесущности были id = 1 для id_user_one или id_user_two.

Вопрос был опубликован здесь но никто не нашел ответ, который работает ... надеюсь, что это возможно :)

PS: если вы знаете, как это работает и для and, я буду рад узнать это :)

1 Ответ

0 голосов
/ 25 октября 2018

Нет, это невозможно сделать только с помощью findBy.Вы должны либо написать функцию хранилища самостоятельно:

$repo->createQueryBuilder('e')
   ->andWhere('e.id_user_one = :user_id')
   ->orWhere('e.id_user_two = :user_id') // change to andWhere depending on your needs
   ->setParameter('user_id', 1)
   ->getQuery()->getResult();

, либо получить объекты двумя вызовами, а затем объединить результаты:

$collection1 = $repo->findBy(['id_user_one' => 1]);
$collection2 = $repo->findBy(['id_user_two' => 1]);
$collection3 = new ArrayCollection(
    array_merge($collection1->toArray(), $collection2->toArray())
);

Для ваших пс: $result = $repo->findBy(['id_user_one' => 1, 'id_user_two' => 1]);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...