3

「specilaties」テーブルにリンクされた外部キー「specialty_id」を持つコンサルタント テーブルがあります。

class Consultant extends AppModel {
    public $belongsTo = array(
        'Specialty' => array(
            'className'     => 'Specialty',
            'conditions'    => array('Specialty.active' => 1)
        )
    );
}

class Specialty extends AppModel {
    public $hasOne = 'Consultant';
}

これは正しいと思いますが、コンサルタント コントローラーから専門分野のリストを取得できません (「非オブジェクトでのメンバー関数 find() の呼び出し」)。

$this->set('specialties', $this->Specialty->find('all'));

どこが間違っているのですか?

ありがとうございました

4

2 に答える 2

2

モデルではなくコントローラーにいることを忘れないでください。これを試して:

$this->set('specialties', $this->Consultant->Specialty->find('all'));
于 2013-02-05T12:24:28.797 に答える
1

他のコントローラーでモデルを使用している場合は、まずそのモデルをロードしてからクエリを実行します。

$this->loadModel('Specialty');
于 2013-02-05T12:25:24.777 に答える