【问题标题】:Repository query to search in a comma separated field在逗号分隔的字段中搜索的存储库查询
【发布时间】:2016-03-01 13:55:03
【问题描述】:

我有一个 MySQL 表,我有一个存储库和一个模型。一列包含逗号分隔的数字,我需要检查我的一个或多个参数是否与逗号分隔的数字匹配。这是表格的样子

| uid | groups | ...
|   1 |      2 | ...
|   2 |    1,2 | ...
|   3 |  3,1,2 | ...

在我的存储库中,我有以下内容

$query = $this->createQuery();
$query->matching($query->in('groups', array(2, 3)));

这将只匹配 uid = 1 的记录。TYPO3 是否有针对这种搜索的解决方案,而无需从头开始编写 SQL 查询?

【问题讨论】:

  • 你可能想检查来自 extbase 核心的FrontendUserRepository,它必须处理这个问题。我不知道它是怎么做的,所以我不能提供更多细节。

标签: repository typo3 extbase


【解决方案1】:

我认为你必须通过模型关系来管理它

假设您与 GROUP 模型(M:N)有 USER 模型关系,并且您在 USER 模型关系组模型中有一个关系属性“组”,那么您在用户存储库中查询将如下所示:

$query->matching(
            $query->in('group.uid', $groupArray)
        );

这将返回其组在 $groupArray 内的所有用户

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 2014-10-19
    • 1970-01-01
    相关资源
    最近更新 更多