0

无论我阅读了多少次文档,看看我无法让我的模型与另一个模型“关联”的示例。

这是我的例子:

我有一张名为kits的表和一张名为grades的表(阅读书籍和作者)。

套件看起来像这样(简化):

  1. 身份证(PK)
  2. Grade_id (FK)
  3. 姓名

成绩看起来像这样:

  1. 身份证(PK)
  2. 代码

每个套件只有 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 等)但无济于事。此外,我通过传入带有类名和外键的数组尝试了长格式,但如果我的模式与 cakePHP 约定匹配,我不应该这样做。

我错过了什么?

4

1 回答 1

5

我的模型名为 KitModel.php

您的模型文件名不正确。应该是Kit.php。如果 CakePHP 没有找到按照约定命名的模型文件,它会为模型使用 AppModel 实例。

于 2013-03-13T07:57:43.340 回答