如何使用cakephp 3进行动态查询?

时间:2016-09-13 10:22:21

标签: php jquery mysql cakephp-3.0

我有一个过滤器可以从中搜索数据库。但是如果任何过滤器字段为空,则忽略它。

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

当你有一个空白字段后面没有查询任何数据库。 我需要帮助来创建一个查询,以便在第一次填充字段时在数据库中执行查询,并忽略那些空白的查询。谁能帮助我?我接受任何创造它的想法。

1 个答案:

答案 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);