2013-03-28 88 views
2
where concat(`year`,'-',`month`) BETWEEN '2013-02' AND '2013-03'; 

如何使用PHP蛋糕的自定义查询分页像这样这个查询..转换查询到的CakePHP查询

$conditions = array('concat('Payroll.year','-','Payroll.month') BETWEEN ? and ?' => array(2013-02, 2013-03)); 

$staff_list = $this->Payroll->find("all", array("fields" => array("Payroll.id", "Payroll.month", "Payroll.year"),"conditions"=>$conditions)); 

谢谢。

+0

你没有指定你的CakePHP版本。在Cake 2.x中,你可能会在这里使用虚拟域。 – mark 2013-03-28 10:07:08

+0

是否可以在where条件中使用虚拟字段名称来分开表格字段.. – lrajesh03 2013-03-28 10:17:59

+0

是的,这是可能的。 – mark 2013-03-28 10:31:40

回答

2

是的,你可以这样做: 在你的模型

var $virtualFields = array(
    'payroll_date' => 'CONCAT(Payroll.year, " ", Payroll.month)' 
); 

和控制器

$staff_list = $this->Payroll->find("all", array(
    "fields" => array("Payroll.id", "Payroll.month", "Payroll.year"), 
    "conditions" => array('Payroll.payroll_date BETWEEN ? AND ?' => array('2013-02', '2013-03')) 
));