【问题标题】:cakephp 1.2 requestAction paginationcakephp 1.2 requestAction 分页
【发布时间】:2012-07-19 12:06:32
【问题描述】:

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

注意(8):未定义变量:分页器[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')); 

函数列表() {

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

【问题讨论】:

    标签: php cakephp cakephp-1.2


    【解决方案1】:

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

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

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

    请询问是否无效。

    【讨论】:

    • 感谢 Arun Jain。略有改善。如何在上述控制器中添加分页器?包含帮助程序类后出现此错误。警告 (2): array_merge() [function.array-merge]: 参数 #1 不是数组 [CORE/cake/libs/view/helpers/paginator.php, line 139] 警告 (2): array_merge() [ function.array-merge]:参数 #1 不是数组 [CORE/cake/libs/view/helpers/paginator.php,第 277 行]
    • 我会花几分钟时间回复你。
    • 您以错误的方式使用 lists() 方法。此链接必须对您有所帮助。 book.cakephp.org/1.2/en/view/165/Controller-Setup 。您应该使用 $this->paginate('Product'); 而不是返回查询结果并使用 $paginate 数组的所有条件。
    • 是的。这是规范方法。我也经常用这个。但是,对于这个页面。我使用 requestAction 方法。所以我不知道如何使用 requestAction 实现分页
    • cakephp.1045679.n5.nabble.com/…bakery.cakephp.org/articles/gwoo/2007/04/12/… 链接可能会为您提供完全一样的帮助。谢谢。
    【解决方案2】:

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

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

    var_dump($paginator);
    

    从提供的代码中很难说,但我假设你也是

    1. 没有使 $paginator 在您的控制器中对您的视图可用
    2. 完全使用了错误的变量名

    【讨论】:

    • yes 为空。我有下面的代码视图&lt;div class="center" style="width:100%;"&gt; &lt;p&gt;&lt;?php echo $paginator-&gt;numbers(); ?&gt;&lt;/p&gt; &lt;br /&gt; &lt;p&gt;&lt;small&gt;Showing Page &lt;?php echo $paginator-&gt;counter(); ?&gt;&lt;/small&gt;&lt;p&gt; &lt;/div&gt;,但它显示通知(8):未定义变量:分页器[APP/views/elements/products.ctp,第97行]
    • 我认为如果您使用 Arun Jain 的解决方案,它应该适合您。
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多