在我的cakephp视图中有自定义分页。在此之前我做了一些自定义路由更改。
问题是链接会导致像
这样的页面http://localhost/myapp/foos/view/news/page:2
而不是
http://localhost/myapp/news/page:2
所以,部分 foos / view / 不一定是链接的一部分。
尝试使用多个自定义选项更改网址,例如
$this->Paginator->options(array('url' => $this->passedArgs));
但没有运气,因为我总是在网址上有foos / view /。
你能帮助我如何摆脱那些foos / view?
非常感谢你!
更新:我设法通过添加以下内容来做“某事”,但还不够:
$options = array('url'=> array('controller' => 'news' ) );
$paginator->options($options);
现在,我的链接看起来像:
http://localhost/myapp/news/index/page:2
如何摆脱网址中的“索引”?
答案 0 :(得分:1)
以下几行更多关于将各种URL信息传递给视图:
$this->Paginator->options(array('url' => $this->passedArgs));
我认为您想要了解的是Controller中的帮助声明:
var $helpers = (
'SomeHelper',
'AnotherHelper',
'Paginator' => array(
'url' => array('controller'=>'news')
)
);
如果您希望更好地控制自己的路线,请尝试
'url' => '/news'
我有一段时间没有使用PaginatorHelper - 所以我可能会走错路 - 但我相信这是一个好的开始。
另外,请查看the Paginator Helper page提及$ options的位置,然后按照前一页建议的那样查看Router::url()。
答案 1 :(得分:1)
我有一个案例,我正在使用CakePHP 2.1(此线程标记为1.3)使用动态管理路径处理项目,以显示如下页面:
Router::connect('/admin/main/*', array('controller' => 'adminPages', 'action' => 'display'));
使用查询字符串参数,可生成如下动态网址: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 - 这是我们正在寻找的正确网址。如果我使用字符串,如上所述,它会将自己附加到网址,例如:http://mydomain.com/adminPages/main/.../admin/main/my-display?page=1
答案 2 :(得分:0)
在视图中:
<?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'));
?>