我在表格中分页结果。现在添加过滤数据的方式,其中一种过滤方式是创建日期,用户可以输入日期“from”和日期“to”。我认为我这样做的方式失败了,当我得到一个使用数据类型的用户过滤的post verficiando。 Armo与条件和字段的安排,过滤并最终将它们返回到页面。我留下了我的代码
if ($this->request->is('post')) {
if(isset($this->request->data['LogsAccione']['user_id'])){
$options['conditions']['LogsAccione.user_id'] = $this->request->data['LogsAccione']['user_id'];
}
if (isset($this->request->data['LogsAccione']['created_from']) && !empty($this->request->data['LogsAccione']['created_from']) && isset($this->request->data['LogsAccione']['created_to']) && !empty($this->request->data['LogsAccione']['created_to'])) {
$options['conditions']['LogsAccione.created'] = array(
'>=' => date('Y-m-d 00:00:00', strtotime($this->request->data['LogsAccione']['created_from'])),
'<=' => date('Y-m-d 23:59:59', strtotime($this->request->data['LogsAccione']['created_to']))
);
}
}
显然这个失败了,但找不到怎么做我想要的方式。创建具有多个选项的排列,以便过滤后显示给用户。在用户的特定情况下,它的工作原理是因为只有一个选项且相同,但在创建日期的情况下是两种可能性。
答案 0 :(得分:1)
解决方案:
if ($this->request->is('post')) {
if(isset($this->request->data['LogsAccione']['user_id']) && !empty($this->request->data['LogsAccione']['user_id'])){
$options['conditions'][] = "LogsAccione.user_id ='".$this->request->data['LogsAccione']['user_id']."'";
}
if (isset($this->request->data['LogsAccione']['created_from']) && !empty($this->request->data['LogsAccione']['created_from']) && isset($this->request->data['LogsAccione']['created_to']) && !empty($this->request->data['LogsAccione']['created_to'])) {
$options['conditions'][] = "LogsAccione.created >='".date('Y-m-d 00:00:00', strtotime($this->request->data['LogsAccione']['created_from']))."'";
$options['conditions'][] = "LogsAccione.created <='".date('Y-m-d 23:59:59', strtotime($this->request->data['LogsAccione']['created_to']))."'";
}elseif(isset($this->request->data['LogsAccione']['created_from']) && !empty($this->request->data['LogsAccione']['created_from'])){
$options['conditions'][] = "LogsAccione.created >='".date('Y-m-d 00:00:00', strtotime($this->request->data['LogsAccione']['created_from']))."'";
}elseif(isset($this->request->data['LogsAccione']['created_to']) && !empty($this->request->data['LogsAccione']['created_to'])){
$options['conditions'][] = "LogsAccione.created <='".date('Y-m-d 23:59:59', strtotime($this->request->data['LogsAccione']['created_to']))."'";
}
}