我想根据branch_id或date或日期之间搜索表中的数据。
CakePHP中的查询应该是什么。
在控制器中查询:
$branchId = $_GET['data']['BranchDailyReport']['branch_id'];
$from_date = $_GET['data']['BranchDailyReport']['from_date'];
$to_date = $_GET['data']['BranchDailyReport']['to_date'];
$condition = array('OR' => array('BranchDailyReport.branch_id =' => $branchId,
'BranchDailyReport.date <= ' => $from_date,
'BranchDailyReport.date >= ' => $to_date
)
);
答案 0 :(得分:1)
您应该使用BETWEEN MySql运算符
$condition = array('OR' => array('BranchDailyReport.branch_id =' => $branchId,
'BranchDailyReport.date BETWEEN ? AND ? ' => array($from_date, $to_date)
)
);
答案 1 :(得分:1)
要查找两个日期之间的日期,需要为AND。 您可以在OR条件中使用AND来查找两个日期:
$conditions = array(
'OR' => array(
'BranchDailyReport.branch_id =' => $branchId,
'AND' => array(
'BranchDailyReport.date <= ' => $from_date,
'BranchDailyReport.date >= ' => $to_date
)
)
);
通过该表单的外观,您不需要“branch_id或日期或日期之间”..您可能希望在日期之间使用branch_id AND“...
$conditions = array(
'BranchDailyReport.branch_id =' => $branchId,
'BranchDailyReport.date <= ' => $from_date,
'BranchDailyReport.date >= ' => $to_date
);
(旁注)
此外,如果您正在使用CakePHP,则应使用$this->request->data
来访问$_GET
个变量。如果您在模型中,则将$this->request->data
作为函数参数传递。