cakephp:PaginatorHelper和路由插件的问题,无法从url中删除插件

时间:2010-08-11 01:30:54

标签: cakephp cakephp-1.3

我正在使用cakedc.com的Tags插件,我在使用PaginatorHelper生成正确的分页链接时遇到问题。

所需的结果是从生成的href中删除插件名称,因为插件将添加到路由中。即http://localhost / tags / photos / oregon / page:4 / perpage:28

这就是我所拥有的:

app / config / routes.php(映射'/ tags'=>'/ tags / tags',即添加到Tags插件)

Router::connect('/tags/:action/*', array('plugin'=>'tags', 'controller'=>'tags'));
// map /tags => /tags/tags

视图文件中的代码:

<?php 
   $this->Paginator->options['url']=array_merge(
              array('plugin'=>'tags'), 
              $this->Paginator->options['url'] 
   ); 
   echo $this->Paginator->numbers(array('separator'=>null, 'modulus'=>'20'));


// debug($this->Paginator->options[url] => Array
//        (
//            [controller] => tags
//            [action] => photos
//            [0] => oregon
//            [perpage] => 28
//            [page] => 4
//        )
// )

// sample href="http://localhost/tags/tags/photos/oregon/page:4/perpage:28"
//     note the '/tags/tags' i.e. /:plugin/:controller

?>

BU,如果我按如下方式设置选项['url'],我会注意到以下内容:

<?php 
   $this->Paginator->options['url']=array('plugin'=>'tags'); 
   echo $this->Paginator->numbers(array('separator'=>null, 'modulus'=>'20'));


// debug($this->Paginator->options[url] => Array
//    (
//        [plugin] => tags
//    )
// )
// sample href="http://localhost/tags/photos/page:4"

?>

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助:http://bakery.cakephp.org/articles/view/secrets-of-admin-routing

但看起来您正在将URL添加PLUGIN数组选项。为什么?如果您正在使用路由,请将其关闭。单击链接时,它将知道如何处理它。换句话说,不要启用路由并同时使用URL上的插件选项。