0

我正在使用 Cakephp 1.2。我应该能够使用分页按 AZ 或 ZA 进行排序。但是,我在下面收到此错误。在其他资源中找不到太多信息。请帮忙。

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

控制器

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; ?>
4

2 回答 2

1

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

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

更多说明:“致命错误:在非对象上调用成员函数 sort()”是在您尝试通过从未被任何类实例化的对象访问方法时出现的。所以你的应用程序必须知道它是哪种对象。

请问它是否不起作用。

于 2012-07-19T04:06:32.057 回答
0

听起来 $paginator 没有设置任何东西。

如果你把这段代码放在你的视图中,它会说 $paginator 是 NULL 吗?

var_dump($paginator);

从提供的代码很难说,但我假设你要么

  1. 没有使 $paginator 可用于您的控制器中的视图
  2. 完全使用了不正确的变量名
于 2012-07-19T01:00:48.843 回答