0

本番環境にCakePHPアプリケーションをアップロードしました。それは私と私の友人のローカルホストで動作しています。本番環境で、さまざまなコントローラーにアクセスしようとすると、次のエラーが発生しました。

エラー:非オブジェクト
ファイルのメンバー関数find()の呼び出し:/app/Controller/GroupsController.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')); 
}

GroupMemberをオブジェクトとして読み取れないようです。

モデル-groupMember.php

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

モデル-group.php

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

エラーはhttp://www.thesupergroupproject.com/groupsで確認できます。

繰り返しますが、プロジェクトは私のローカルホストと私の友人のローカルホストの両方で機能しています。エラーの原因は何ですか?

4

1 に答える 1

0

モデル名は。である必要がありますCamelCase。私はあなたがWindowsまたは他のオペレーティングシステムを使用しているのではないかと思いますがcase insensitive、本番環境はLinuxです。case sensitive

また、2.xを使用する場合、モデルに$ nameプロパティは必要ありません。これは、削除されたPHP4.xサポート用でした。

との関係'foreignKey' => 'id'が正しくないようです。GroupMemberはgroup_idフィールドによって関連付けられている必要があります。

于 2012-12-17T15:23:35.190 に答える