我正在使用带有多个复选框的表单,我只需要显示复选框类别中的那些数据。 如何为此写条件。
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');
但是得到错误。 提前致谢
答案 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之前准备好数据。