cakephp分页从阵列设置condistion

时间:2015-07-20 10:41:36

标签: cakephp pagination string-concatenation

我正在使用带有多个复选框的表单,我只需要显示复选框类别中的那些数据。 如何为此写条件。

for($i=0;$i<count($this->request->data['filter']['delivering']);$i++)
{   
$opt1=".'Gig.bangsalsodeliverings' => ".$this->request->data['filter']['delivering'][$i];
$opt2=$opt2.$opt1.',';
}
$options=array('conditions' => array($opt2));
$this->Paginator->settings = $options;
$agetGigsItem = $this->Paginator->paginate('Gig');

但是得到错误。 提前致谢

1 个答案:

答案 0 :(得分:0)

看起来你正在使用字符串连接而不是数组来构建条件数组。 此外,我不清楚过滤器传递是否是一组字符串或整数。 我想你可以试试:

// Merge the filters into a csv string
$filters = array();
foreach($this->request->data['filter']['delivering'] as $v){
    $filters[] = "'{$v}'";
}
$csv_filters = implode(",", $filters);

// Use the csv to make a IN condition
$this->Paginator->settings = array('conditions' => array(
    "Gig.bangsasodeliverings IN ({$csv_filters})",
));

请注意,可以在此处进行sql注入,因此在创建$ csv_filters之前准备好数据。