ドキュメントを何度読んでも、モデルを別のモデルに「関連付ける」ことができない例を見てください。
これが私の例です:
kitsと呼ばれるテーブルとgrades (本と著者を読む) と呼ばれるテーブルがあります。
キットは次のようになります (簡略化):
- ID (PK)
- grade_id (外部キー)
- 名前
グレードは次のようになります。
- ID (PK)
- コード
各キットには 1 つのグレードしかありません。命名規則に問題はありません。API で規定されているとおりです。
--
次のような KitsController.php というコントローラーがあります。
class KitsController extends AppController {
public function index() {
//simple find that limits to one (for readability)
$pigs = $this->Kit->find("all", array(
"limit" => 1
));
$this->set("pigs", $pigs);
}
}
変数 $ pigs を出力する対応する index.ctp ファイルがあります(私が知っている生産レベルの変数名ではありません)。
--
KitModel.php というモデルがあります
class Kit extends AppModel {
public $belongsTo = "Grade";//here is where I am confused
}
...そしてプレースホルダー用の空の Grade モデル
class Grade extends AppModel {
}
--
問題:
配列がページに印刷されると、次のようになります。
Array ( [0] => Array (
[Kit] => Array (
[id] => 1
[grade_id] => 1
[name] => Ferrari
) ) )
私の理解では、結果を印刷すると、キット情報とともにグレード情報が含まれているはずです。私がオンラインで見たすべての例で確かにそうです。さまざまな関係 (hasOne など) も試しましたが、役に立ちませんでした。また、クラス名と外部キーを含む配列を渡すことで長い形式を試しましたが、スキーマが CakePHP の規則と一致する場合は、そうする必要はありません。
私は何が欠けていますか?