【问题标题】:How to pass parameters in pagination in cakephp?如何在cakephp的分页中传递参数?
【发布时间】:2013-03-11 00:55:59
【问题描述】:

我想在 cakephp 中传递参数,当我搜索排序结果然后单击分页的 2 页时,我该怎么做?我在控制器代码中通过分页参数是

        $membershipType = '';
    $status         = '';
    $timeSpan       = '';

    $fieldName = 'membership_Type';
    if(!empty($this->params->named["fieldName"])){
        $this->request->data['associations']["fieldName"] = $this->params->named["fieldName"];
    }
    $fieldName = 'statuses';
    if(!empty($this->params->named["fieldName"])){
        $this->request->data['associations']["fieldName"] = $this->params->named["fieldName"];
    }

    $fieldName = 'time_Span';
    if(!empty($this->params->named["fieldName"])){
        $this->request->data['associations']["fieldName"] = $this->params->named["fieldName"];
    }       

我想在分页中传递字段名称的值,我该如何传递这些? 在我看来,代码是

 echo $this->PaginatorManager->options();

我真的被困在这里两天了,我不知道我现在该怎么办?请帮助我,将不胜感激,提前致谢。

【问题讨论】:

  • 您不能将其标记为 1.3 和 2.x。请在此处选择正确的 CakePHP 版本。
  • @mark well 我正在使用最新的 cake 版本,我也标记了其他版本,因为 1.3 和 2.x 中有很多用户
  • 那是无效的。如果您的代码适用于 2.x,而不是仅使用“cakephp”(父级)和“cakephp2.x)进行标记。否则您只会让所有人感到困惑,因此您很可能会得到不正确的答案。您不会得到更多注意这种方式,只有更糟糕的答案。
  • @mark 好的,下次我会小心的。 :)
  • 如果[$fieldName] 也可以工作,为什么["$fieldName"]

标签: php cakephp pagination cakephp-2.0


【解决方案1】:

您可以像这样在视图中将“url”选项传递给分页:

$url = array_merge($this->request->pass, $this->request->named);
unset($url['page']);
$parts = explode('?', $_SERVER['REQUEST_URI'], 2);
if (count($parts) == 2) {
    $url['?'] = $parts[1];
}
$this->Paginator->options(array(
    'url' => $url,
));

更多:http://api.cakephp.org/2.2/class-PaginatorHelper.html 在这里:http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::options

如果您广泛使用过滤器和其他 url 参数 - 制作一个可以为您处理的元素

【讨论】:

    【解决方案2】:

    这对我有用:

    我在app.Config.routes.php中定义了参数:

    Router::connect('/my_account/*', array('controller' => 'ads', 'action' => 'my_account'), array(
    'pass' => array('status')
    ));
    

    然后在视图文件中:

    $this->Paginator->options(array(
    'url' => $this->request->pass
    ));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      相关资源
      最近更新 更多