Cakephp 3.5 查询 - 过滤具有相同标题的条目

Cakephp 3.5 query - Filter entries with same title

我正在为我正在处理的项目使用 CakePhp 3.5。我的问题是关于构建查询。我有一个不断增长的数据库,其中包含 idtitlecontentuser_id 和一些在这种情况下并不是真正有趣的字段。

该软件是关于事件管理的,因此具有相同标题的条目可以(并且可能)在每个字段中都是相同的,但在日期或时间等方面则不同。但在这种情况下我唯一担心的是标题。

我正在做一个自动完成功能,让用户可以通过 Ajax 使用以前输入的数据填写添加表单。

所以当用户输入标题时,我正在搜索具有相似标题的较旧条目。

因为加倍标题是完全可以的,所以我得到了很多应该的结果。但我只需要为每个唯一标题获得一个结果,即如果有 5 个标题为“Party”的条目,我只想获得其中的 1 个。 但是,如果还有标题为“麦当劳派对”和“派对巴士计划”的活动,我想获得一个列表:

每个相关标题显示一个条目。

不同的内容不打扰我。如果我的用户为不同的内容设置相同的标题,那是他们自己的问题。他们必须学习如何使用标题才能使用该软件。

我正在寻找某种条件或选择器,它告诉蛋糕对于每个相同的标题只获取一个条目。在 php 中执行此操作会导致长期 运行 上的软件泄漏,这是计划用于此项目的。

我当前的查询如下所示:

$events_query = $this->Events
    ->find()
    ->where([
        'title LIKE' => '%' . $this->request->data('title') . '%'
    ])
    ->andwhere([
        'user_id' => $this->Auth->user('id')
    ]);

有人能解决我的问题吗?我有点卡住了,所以也许有人可以指出我正确的方向。

提前致谢!

您需要group标题加上query-builder

的group()-函数

看这里:https://book.cakephp.org/3.0/en/orm/query-builder.html#aggregates-group-and-having