cakephp 1.2 requestAction分页

时间:2012-07-19 00:15:07

标签: php cakephp cakephp-1.2

我正在使用Cakephp 1.2。我应该可以用A-Z或Z-A对分页进行排序。但是,我在下面收到此错误。在其他资源中找不到太多信息。请帮忙。

注意(8):未定义的变量:paginator [APP / 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')); 

function lists(){

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

2 个答案:

答案 0 :(得分:1)

要在元素中使用paginator类,必须在控制器中包含帮助程序类。因此,您的控制器代码将如下所示:

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

更多说明: “致命错误:当你试图通过一个从未被任何类实例化的对象访问该方法时,就会调用非对象上的成员函数sort()”。因此,您的应用程序必须知道它是哪种对象。

请问它是否有效。

答案 1 :(得分:0)

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

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

var_dump($paginator);

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

  1. Aren在您的控制器中为您的视图提供$ paginator
  2. 完全使用不正确的变量名称