【问题标题】:Doctrine : get result when array of ids in array教义:当数组中的 id 数组时获取结果
【发布时间】:2014-11-20 13:50:50
【问题描述】:

我正在开发一个网站,但遇到了一个问题。 我的问题是以下一个:我有一个带有标签的实体(天)(标签也是一个实体),并且我有一个标签列表。我想得到至少在标签中包含我所有标签列表的日子。

这是一个例子:

我的标签列表:“tag1”、“tag2”。

我的日子:

  • day1 有标签“tag1”、“tag2”、“tag3”
  • day2 有标签“tag1”

我的请求应该返回 day1,因为我列表的所有标签都在 day1 的标签中。 但我的结果中有第 1 天和第 2 天:'(

这是我的代码:

$qb = $this->createQueryBuilder('d')
            ->leftJoin('d.tags', 't')
            ->where('t IN (:tags)')
            ->setParameter('tags', $tags);


    return $qb->getQuery()->getResult();

有人可以帮帮我吗?

谢谢。

【问题讨论】:

  • 你的实体和它们的表格是什么样子的?

标签: arrays symfony doctrine request dql


【解决方案1】:

尝试按天分组,只保留同时包含两个标签的结果。

$qb = $this->createQueryBuilder('d')
    ->innerJoin('d.tags', 't')
    ->where('t IN (:tags)')
    ->groupBy('d')
    ->having('count(*) > 1')
    ->setParameter('tags', $tags);

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 2012-05-23
    • 1970-01-01
    • 2019-11-07
    • 2017-09-30
    • 1970-01-01
    • 2016-12-30
    • 2011-07-09
    • 2019-01-09
    相关资源
    最近更新 更多