2016-01-21 107 views
0

在CakePHP v.2.5.2中,是否有更简单的方法来执行此检查?CakePHP过滤器分页字段

if(!empty($this->passedArgs['somemodel.someatribute'])) { 
    $paginate['conditions']['somemodel.someatribute'] = base64_decode($this->passedArgs['somemodel.someatribute']); 
} 

当我有很多领域,名单会很长,我想避免这一点。

+0

通常您应该避免通过URL传递任何非段落非ASCII字符。一个应该使用查询字符串,他们不需要额外的处理(不编码或解码)。 – mark

回答

1

难道你不能只使用标准的foreach循环?

foreach($this->passedArgs as $key => $value) { 
    $paginate['conditions'][$key] = base64_decode($value); 
} 

可选择地尝试寻找到$this->request->params['pass']阵列,其类似于$this->passedArgs

有关更多详细信息,请查看the CakePHP docs on routing

+0

在您将其标记为正确之后,我编辑了我的答案的第一部分(之前的“备选”),因为第一部分是错误的。我假设第二部分为你工作?如果是这样,我可能想要删除第一部分。 – dragmosh