0

I am using Cakephp 1.2. I should be able to sort by A-Z or Z-A with the paginate. However, I got this error below. No much information found in the other resources. please help.

Notice (8): Undefined variable: paginator [APP/views/elements/products.ctp, line 25] Fatal error: Call to a member function sort() on a non-object in /Applications/MAMP/htdocs/development03/app/views/elements/products.ctp on line 25

Controller

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);
}

Element

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

要素で paginator クラスを使用するには、コントローラーにヘルパー クラスを含める必要があります。したがって、コントローラーのコードは次のようになります。

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 に答える