2010-02-03 42 views
0

比方说,我有分页此页:CakePHP的分页问题,​​下一首/上

本地主机/ FR /用户/指数/页:1

我看到第1页正确的结果基础上如何我已经在我的控制器中定义了paginate var。但是,当我点击下一个按钮时,网址更改为页面:2,但结果不变,并且与页面:1相同,页面:3,页面:4等等相同...

如果我第一次对列进行排序,我们说用户名,那么我可以使用上一个/下一个链接,没有任何问题,每个页面上的数据都会发生变化。

我能想到的唯一的事情可能会导致我的问题是,我用我的网址语言PARAM,但我不知道如何解决这一问题...我目前使用蛋糕1.2

。 5。我也尝试了1.3测试版,结果相同。

好了,所以这是我的用户控制器代码:

var $paginate = array('limit'=>'5'); 
function index() { 
$this->User->recursive = 0; 
$this->set('users', $this->paginate()); 
} 

我使用teknoid教程语言切换:

URL-based language switching...

语言PARAM通过app_helper.php

function url($url = null, $full = false) { 
    if(!isset($url['language']) && isset($this->params['language'])) { 
     $url['language'] = $this->params['language']; 
    }  

    return parent::url($url, $full); 
} 
添加

和使用方法完成语言切换在app_controller.php:

function _setLanguage() { 

    if ($this->Cookie->read('lang') && !$this->Session->check('Config.language')) { 
     $this->Session->write('Config.language', $this->Cookie->read('lang')); 
    } 
    else if (isset($this->params['language']) && ($this->params['language'] 
     != $this->Session->read('Config.language'))) {  

     $this->Session->write('Config.language', $this->params['language']); 
     $this->Cookie->write('lang', $this->params['language'], null, '20 days'); 
    } 
} 

SOLUTION:

设立雅虎老板网站,注意到,寻呼是完美的工作后,我更加紧密地在我的代码看了一下,发现这个问题是我的routes.php文件里。

我有这样的:

Router::connect('/news', array('controller'=>'news', 'action'=>'index')); 

Router::connect('/:language/news', array('controller'=>'news', 'action'=>'index'), array('language'=>'[a-z]{2}')); 

我修改它像这样采取一切PARAMS:

Router::connect('/news/*', etc... 

Router::connect('/:language/news/*', etc... 
+0

有些代码会有帮助,特别是'UsersController :: index()'动作,或许还有一些关于如何执行语言参数的细节。 – deceze 2010-02-04 01:47:42

回答

0

显示我们的控制器代码视图代码和一些示例网址。过去我也遇到过类似的问题,但是如果你不给我们更多的信息,没有人能帮上忙。

0
Even i faced the similar problem 

**Solution** 

I closely checked all my code and after trial and errors i was able to find the solution 

First the cause: I was doing a order by 
$this->paginate = array(
      'limit' => 20, 
      'order' => array('Test.aws_id' => 'asc'), 
      'conditions' => $condition_options 
     ); 

The above code was returning first page result across all pages. 

After a while i closely checked everything and the result set. 
The resultset was returning me **capital AWS_ID** and i was doing my ordering on aws_id after changing it to caps my code was working 

Hope this helps someone