0

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

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

List.html 列表

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

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

  • 控制器

        $roomKey = $this->roomRepository->RoomKeyFetcher($enddatetime, $startdatetime);
        var_dump($roomKey);
        $unique_rooms = array_unique($roomKey);
    
        $this->view->assign('roomKeys', $unique_rooms);
    

存储库:

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;            
}
4

1 回答 1

0

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

$query->statement('SELECT DISTINCT roomKey FROM tx_example_domain_model_room
                   WHERE startdatetime >= ? OR enddatetime <= ?', 
                   [$enddatetime, $startdatetime]);
于 2018-12-25T12:56:41.810 回答