【问题标题】:cakephp 2.0 Fatal error: Call to a member function sort() on a non-objectcakephp 2.0 致命错误:在非对象上调用成员函数 sort()
【发布时间】:2012-07-16 20:56:42
【问题描述】:

尽量具体,因为我上次发帖时被抨击了!

用户进行身份验证,然后在 AppController 中我将他们路由到一个名为 Owners 的控制器,操作是下面的索引代码

    public $components = array(                                                                         
  'Session',                                                                                    
  'Auth' => array(                                                                              
    'loginRedirect' => array('controller' => 'Owners', 'action' => 'index')                     
)    

我是 Cake 新手,但我的猜测是当所有者控制器触发索引函数中的代码时,它什么也不返回,这就是我在视图中收到致命错误消息的原因。 (我正在阅读 Cakephp 2.0 食谱),是的,所有者表中有几个所有者,所以它不是空的。

mysql> 从所有者中选择 *;
+----+------------+--------------+----------+------- -------------+---------+---------+--------+------- ------+---------+------------+-------------+
|编号 |名字 |中间名 |姓氏 |街道地址 |城市|邮政编码 |状态 |音素 琥珀色 |用户 ID |车辆编号 |引用 ID |
+----+------------+--------------+----------+------- -------------+---------+---------+--------+------- ------+---------+------------+-------------+
| 1 |马克 |沃尔特 |辛普森 |第1234章安东 | 12345 |葛 | 916123 第456章1 |空 |空|
| 2 |弗兰克 |多思米勒 |弗兰克 | 2878 邦莱街 |弗雷斯诺 | 95758 |钙 | 916551 0234 | 3 |空 |空|
| 3 |托伦 | W |瓦隆 | 8252盲栎路|贝尔福尔 | 3889 |加州 | 917838 8 | 1 |空 |空|
| 4 |托伦 | W |瓦隆 | 8252盲栎路|贝尔福尔 | 3889 |加州 | 917838 8 | 1 |空 |空|
+----+------------+--------------+----------+------- -------------+---------+---------+--------+------- ------+---------+------------+-------------+
一组 4 行(0.00 秒)

在 Owners 控制器中,我将以下代码放入 index 函数中,

     public function index() {                                                                   

          $this->set('owners', $this->Owner->find('all'));                                      
    }

当我以用户身份登录时,我得到了这个, 业主

注意(8):未定义属性:View::$Paginator [CORE/Cake/View/View.php, line 804]

致命错误:在 /srv/www/www.cross-town-traffic-software.com/public_html/freecite/app/View/Owners/index.ctp 中的非对象上调用成员函数 sort()在第 5 行

这是所有者目录中 index.ctp 文件的第五行

<th><?php echo $this->Paginator->sort('id');?></th>      

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    您正在尝试在视图中使用 PaginatorHelper,但尚未包含它。

    添加

    public $helpers = array('Paginator');
    

    到您的控制器。 See Cookbook for background on Helpers 以及如何在您的视图中使用它们。

    【讨论】:

    • 那么当你重写索引函数时你必须添加分页器助手?现在我收到警告 (2): array_filter() 期望参数 1 是数组,给定 null 和致命错误:不能在 /srv/www/www.cross-town-traffic-software.com/ 中使用字符串偏移作为数组public_html/freecite/app/View/Owners/index.ctp 在第 19 行
    • 当我从控制器中删除索引函数并将脚手架放回原处时,我会得到一个包含所有所有者和操作的页面。我确实把助手留在里面,没有收到错误消息。
    • 它与index()函数无关,$helpers是你的Controller类的成员,就像$components一样。如果要在视图中使用助手,则需要将其包含在相应的控制器中。就这样。关于您的下一条错误消息:很难说,没有看到文件的第 19 行...
    【解决方案2】:

    在控制器中你必须添加

    public $components = array('Paginator');
    

    而不是

    public $helpers = array('Paginator');
    

    【讨论】:

      猜你喜欢
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 2012-05-30
      相关资源
      最近更新 更多