无论我阅读多少次文档,请查看示例,我无法让我的模型与另一个模型“关联”。
以下是我的例子:
我有一个名为 kits 的表和一个名为 grade 的表(阅读书籍和作者)。
kits 看起来像这样(简化):
成绩看起来像这样:
每个套件只有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);
}
}
我有一个相应的index.ctp文件,它输出变量$ pigs(不是我知道的生产级变量名)。
-
我的模型名为KitModel.php
class Kit extends AppModel {
public $belongsTo = "Grade";//here is where I am confused
}
...和占位符的空成绩模型
class Grade extends AppModel {
}
-
问题:
当数组在页面上打印出来时,它看起来像这样。
Array ( [0] => Array (
[Kit] => Array (
[id] => 1
[grade_id] => 1
[name] => Ferrari
) ) )
根据我的理解,当我打印出结果时,它应该包括成绩信息以及试剂盒信息。它确实适用于我在网上看到的每一个例子。我也尝试过不同的关系(hasOne等),但无济于事。此外,我通过传入带有classname和外键的数组来尝试长形式,但如果我的模式与cakePHP约定匹配,我不应该这样做。
我错过了什么?
答案 0 :(得分:5)
我的模型名为KitModel.php
您的模型文件名不正确。它应该是Kit.php
。如果CakePHP找不到按照约定命名的模型文件,则它会为模型使用AppModel实例。