如何在cakephp2中使用mysql函数

how to use mysql function inside cakephp2

我想在我的模型中做一个简单的查询,我已经在我的控制器中做了同样的事情,到目前为止它有效。

/users/controller 
    $reservations = $db->fetchAll(
        "SELECT TIME_FORMAT(time_start, '%H:%i') as time_start, 
                TIME_FORMAT(time_end, '%H:%i') as time_end 
         FROM bookings 
         WHERE datepicker = ?", [$date]); 

我知道解决方案效率不高,所以我想在我的函数中创建一个方法来做同样的事情,但是我找不到用 [= 包含 time_start 字段的方法25=] 函数 TIME_FORMAT() 使用 ->find() 方法。

更新。

我已尝试使用 virtual fields,但只收到 Indirect modification of overloaded property has no effect 错误。

您想对这些使用 virtual fields。所以在你的情况下你会想要这样的东西:-

public $virtualFields = array(
    'time_start' => "TIME_FORMAT(time_start, '%H:%i')",
    'time_end' => "TIME_FORMAT(time_end, '%H:%i')"
);

这些在相关模型中定义。