如何从cakephp的分页器选项中更改url的一部分?

disho6za  于 2022-11-11  发布在  PHP
关注(0)|答案(3)|浏览(170)

在我的cakephp视图中有自定义的分页。在此之前我做了一些自定义的路由更改。
问题是链接指向的页面
http://localhost/myapp/foos/view/news/page:2
而不是
http://localhost/myapp/news/page:2
因此,带有**foos/view/**的部分不一定是链接的一部分。
尝试用几个自定义选项来更改url,如

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

但没有运气,因为我总是有foos/查看/在网址。
你能帮我一下怎么才能摆脱这些麻烦吗?
非常感谢!

**UPDATE:**我设法做了“一些事情”,但还不够,通过添加以下行:

$options = array('url'=> array('controller' => 'news' ) );
$paginator->options($options);

现在,我的链接看起来像:
http://localhost/myapp/news/index/page:2
我怎样才能去掉网址中“index”?

yzxexxkh

yzxexxkh1#

下面一行详细介绍了如何将各种URL信息传递给视图:

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

我认为您需要查看的是控制器中的helper声明:

var $helpers = (
    'SomeHelper',
    'AnotherHelper',
    'Paginator' => array(
        'url' => array('controller'=>'news')
    )
);

如果您想更好地控制自定义路线,如您所拥有的路线,请尝试

'url' => '/news'

我已经有一段时间没有使用PaginatorHelper了--所以我可能走错了路--但我相信这是一个好的开始。
另外,看看the Paginator Helper page中提到$options的地方,然后看看前一页推荐的Router::url()。

hc8w905p

hc8w905p2#

我有一个案例,我正在使用CakePHP 2.1(此线程标记为1.3)处理一个项目,使用动态管理路径显示如下页面:

Router::connect('/admin/main/*', array('controller' => 'adminPages', 'action' => 'display'));

使用查询字符串参数,生成如下所示的动态url:http://mydomain.com/adminPages/main/...?page=1
链接路由,是不正确的,我们的需要,并发现我可以改变网址直接使用:

$this->Paginator->options(array(
  'url' => array(
    'controller' => 'admin/main/my-display',
  )
));

对我来说,它做了一个链接:http://mydomain.com/admin/main/my-display?page=1-这是我们要找的正确的url。如果我使用字符串,如上所述,它会将自己附加到url,如:http://mydomain.com/adminPages/main/.../admin/main/my-display?page=1

pepwfjgg

pepwfjgg3#

在视图中:

<?php 
    $this->Paginator->options(array('url' => array('controller' => '','action' =>'your-custom-url')));
?>

在routes.php中:

<?php 
    Router::connect('/your-custom-url/*', array('controller' => 'Controller', 'action' => 'function'));
?>

相关问题