我有一个过滤器可以从中搜索数据库。但是如果任何过滤器字段为空,则忽略它。
$name = $this->request->data['name'];
$status = $this->request->data['status'];
$code_transaction = $this->request->data['code_transaction'];
$orders = $this->Orders->find('all')->where(['name'=> $name, 'status'=> $status, 'id'=> $code_transaction]);
当你有一个空白字段后面没有查询任何数据库。 我需要帮助来创建一个查询,以便在第一次填充字段时在数据库中执行查询,并忽略那些空白的查询。谁能帮助我?我接受任何创造它的想法。
答案 0 :(得分:0)
您可以这样做:
$query = ['name'=> $name, 'status'=> $status, 'id'=> $code_transaction];
$newdataquery =[];
foreach($query as $key => $data) {
if (strlen($data) > 0 )
$newdataquery[$key] = $data;
}
$orders = $this->Orders->find('all')->where($newdataquery);