首页 > 解决方案 > 来自存储库的 Extbase-DISTINCT 值

问题描述

从我的数据库中获取唯一的房间号。

我的表是 tx_example_domain_model_room,其中包含 startdatetime、enddatetime 和 roomKey 列。我想获取大于给定日期时间的 roomKey。当我查询时,结果返回所有大于给定日期时间的房间密钥,所有超过给定日期时间的房间密钥都会出现。但是,它并不明显。我想得到不同的房间。下面是我的代码:

List.html 列表

f:form.select options="{roomKeys}" optionLabelField="roomKey"

您能否让我知道如何获得不同的值。更多细节:Room 是一个模型,包含属性 roomKey、startdatetime 和 enddatatime。

存储库:

public function RoomKey($enddatetime, $startdatetime) {
    $query = $this->createQuery();

    $query->statement('SELECT * FROM tx_example_domain_model_room
                        WHERE startdatetime >= ? OR enddatetime <= ?', 
                        [$enddatetime, $startdatetime]);

    $results = $query->execute();

    return $results;            
}

标签: extbase

解决方案


只需使用DISTINCT关键字 onroomkey就可以了。

$query->statement('SELECT DISTINCT roomKey FROM tx_example_domain_model_room
                   WHERE startdatetime >= ? OR enddatetime <= ?', 
                   [$enddatetime, $startdatetime]);

推荐阅读