cakehp1.2请求操作分页


cakephp 1.2 requestAction pagination

我使用的是Cakephp 1.2。我应该能够通过A-Z或带有分页符的Z-A进行排序。然而,我在下面得到了这个错误。在其他资源中找不到太多信息。请帮忙。

注意(8):未定义的变量:paginator[AP/views/elements/products.ctp,第25行]致命错误:在第25行的/Applications/MAMP/htdocs/development03/app/views/elements/products.ctp中对非对象调用成员函数sort()

控制器

var $helpers = array('Html','Form','Ajax','Javascript', 'Text');
// Pagination 
var $paginate = array('limit' => 8, 'page' => 1,'order'=>array('Product.name' => 'asc')); 

函数列表(){

    $categories = $this->Category->find('all', array('order' => 'Category.id ASC' ));       
    $categories = $this->Category->buildCategories($categories, $this->passedArgs['c']);
    $children_ids  = $this->Category->getChildCategories($categories, $this->passedArgs['c'], true);
    $allCatIds = array_merge(array($this->passedArgs['c']), $children_ids);
    //return lists
    return $this->Product->lists($allCatIds);
}

元素

<?php 
$products = $this->requestAction("/products/lists/c:$catId/"); 
?>
 <?php echo $paginator->sort('Name', 'name', array('title' => 'Sorting Title Alphabetically','class' => 'normalTip')); ?>
<?php foreach ($products as $product): ?>
 ...
<?php endforeach; ?>

要在元素中使用paginator类,必须在控制器中包含helper类。所以你的控制器的代码看起来像:

var $helpers = array('Html','Form','Ajax','Javascript', 'Text', 'Paginator');

更多解释:当您试图通过从未被任何类实例化的对象访问该方法时,会出现"致命错误:对非对象的成员函数sort()的调用"。所以你的应用程序必须知道它是哪种对象

请询问它是否无效。

听起来$paginator没有设置为任何值。

如果您将此代码放在视图中,它是否表示$paginator为NULL?

var_dump($paginator);

很难说从提供的代码,但我认为你要么

  1. 您的控制器中没有使$paginator可用于您的视图吗
  2. 总共使用了不正确的变量名