【问题标题】:Typo3 8.7.3 ExtBase - Individual MySQL Query in RepositoryTypo3 8.7.3 ExtBase - 存储库中的单个 MySQL 查询
【发布时间】:2017-10-19 13:21:32
【问题描述】:

我目前遇到一个问题,我认为这与数据库基数有关,而 Typo3 无法识别它。

我有一个项目模型,它具有与 1:n 关系相关的不同预评估、评估和指导。所以我想在这些模型中的任何一个中获取用户连接到的所有项目。不同型号的用户可以不同或相同,但我只想获得该项目一次。由于我阅读了typo3 extbase 的文档,因此当我使用单个数据库查询时,typo3 隐含地发现了基数。

评估、预评估和指导在 TCA 中设置为自定义列声明中的“内联”类型。

我正在尝试使用的功能是这里的那个:

public function findOwnedProjects($filters,$aSorting = NULL, $aSearch = NULL)
{
    $user = $GLOBALS['TSFE']->fe_user->user;
    $userId = $user['uid'];

    $query = $this->createQuery();

    $orCondition[] = $query->equals('preEvaluations.frontendUser', $userId);
    $orCondition[] = $query->equals('evaluations.frontendUser', $userId);
    $orCondition[] = $query->equals('mentorings.frontendUser', $userId);
    $orCondition[] = $query->equals('projectlead', $userId);

    $condition[] = $query->logicalOr($orCondition);

    $condition[] = $query->equals("type", 'project', false);

    $query->matching($query->logicalAnd($condition));

    if (!empty($aSorting)) {
      $sSorting = $aSorting['order'] == 'asc' ? \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING : \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING;
      $sSortBy = strip_tags(trim($aSorting['sortBy']));
      $query->setOrderings(array($sSortBy => $sSorting));
    }

    return $query->execute();
}

但是,当有多个预评估或与项目相关联时,这将返回重复的项目。我尝试 var_dumping 生成的 SQL 语句,可以看到没有 DISTINCT 正在使用。这就是我认为的全部问题,到目前为止我还没有看到解决方案。

我不是typ3 专家,我只是想找出问题所在。如果您知道我可能错过了什么,请回答这个问题。

谢谢!

【问题讨论】:

    标签: php mysql typo3 extbase


    【解决方案1】:

    我会尝试像这样的$query->contains 方法:

    $orCondition[] = $query->contains('preEvaluations.frontendUser', $userId);
    $orCondition[] = $query->contains('evaluations.frontendUser', $userId);
    $orCondition[] = $query->contains('mentorings.frontendUser', $userId);
    $orCondition[] = $query->contains('projectlead', $userId);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      相关资源
      最近更新 更多