如何在cakephp2中使用mysql函数

时间:2016-02-22 16:01:37

标签: mysql cakephp cakephp-2.3

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

/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]); 

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

更新。

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

1 个答案:

答案 0 :(得分:2)

您希望virtual fields用于这些。所以在你的情况下,你需要这样的东西: -

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

这些是在相关模型中定义的。