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