CakePhp对象错误

CakePhp对象错误,cakephp,Cakephp,我在产品上上传了一个CakePHP应用程序。它正在我和我朋友的本地主机上工作。在生产过程中,我尝试访问不同的控制器时出现以下错误: 错误:对非对象调用成员函数find() 文件:/app/Controller/groupscocontroller.php 行:10 <?php class GroupsController extends AppController { var $name = 'Groups'; var $displayField = 'name'; var $helpe

我在产品上上传了一个CakePHP应用程序。它正在我和我朋友的本地主机上工作。在生产过程中,我尝试访问不同的控制器时出现以下错误:

错误:对非对象调用成员函数find()
文件:/app/Controller/groupscocontroller.php
行:10

<?php
class GroupsController extends AppController {

var $name = 'Groups';
var $displayField = 'name';
var $helpers = array('Paginator', 'Html', 'Form');

function index() {
    $groups = $this->Group->find('all');
    $members = $this->Group->GroupMember->find('all', array('order' => array('GroupMember.date_checked DESC'))); //Line 10!
    $owners = $this->Group->GroupContact->find('all', array('conditions' => array('GroupContact.owner' => 1)));
    $this->set(compact('groups', 'members', 'owners')); 
}

Model-group.php

<?php
class GroupMember extends AppModel{
var $name = 'GroupMember';
var $belongsTo = array(
    'Group' => array(
        'className' => 'Group',
        'foreignKey' => 'group_id'
    )
);
}
?>
<?php
class Group extends AppModel{
var $name = 'Group';
var $hasMany = array(
    'GroupMember' => array(
        'className' => 'GroupMember',
        'foreignKey' => 'id',
    )
);
}
?>

您可以在屏幕上看到错误


同样,该项目正在我的本地主机和我朋友的本地主机上工作。导致错误的原因是什么?

型号名称应为
CamelCase
。我怀疑您使用的是windows或其他操作系统,不区分大小写,而您的产品是Linux,区分大小写

另外,当使用2.x时,在模型中不需要$name属性,这是针对PHP4.x的支持,该支持已被放弃


您与
'foreignKey'=>'id'
的关系似乎不正确,GroupMember应该通过
group_id
字段进行关联。

首先,指向您的代码的链接已经断开-您不应该为此问题添加非永久性链接。无论如何,由于您的代码已经在两个系统上进行了测试,我将首先确保您的生产系统没有问题。您的生产系统与其他两台具有LAMP堆栈(Apache、Mysql和PHP)的机器之间是否存在版本不匹配的问题?我在同一台服务器上的Cake中部署了一个不同的项目,它以前工作正常。Cake的相同版本?过去很少有变化让我如此着迷。你的模型就是这样被资本化的吗?命名约定在1.3和2之间发生了变化,如果它是2.0+应用程序,那么它们应该是
GroupMember.php
Group.php
。我也有这个想法-如果你的开发机器是Windows(不区分大小写),而生产服务器是unix(区分大小写),那么这可能是个问题。@Daniel good Think我会检查它。缓存也被清除。