FindBy()方法“或” /“与”

时间:2018-10-25 07:46:10

标签: php symfony symfony-3.4

如何在or方法中使用findBy

示例:我有一个包含id_user_oneid_user_two的实体,并且我想通过findby方法进行搜索,所有实体都是id = 1的{​​{1}}或{ {1}}。

问题已发布here,但没有人找到有效的答案...希望有可能:)

P.S。 :如果您也知道它对id_user_one的工作原理,我将很高兴知道它:)

1 个答案:

答案 0 :(得分:1)

否,仅使用findBy是不可能的。您要么必须自己编写一个存储库函数:

getScheduleDate(date: Date()) { (startTime, endTime, scheduledList) in

    // Update your UI or do any actions based on the fetched data here.
}

或通过两次调用获取实体,然后合并结果:

$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();

对于您的ps:$collection1 = $repo->findBy(['id_user_one' => 1]); $collection2 = $repo->findBy(['id_user_two' => 1]); $collection3 = new ArrayCollection( array_merge($collection1->toArray(), $collection2->toArray()) );