蛋糕PHP模型关联 - 我做错了什么?

时间:2013-03-13 07:55:00

标签: cakephp model-associations

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

以下是我的例子:

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

kits 看起来像这样(简化):

  1. id(PK)
  2. grade_id(FK)
  3. 名称
  4. 成绩看起来像这样:

    1. id(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等),但无济于事。此外,我通过传入带有classname和外键的数组来尝试长形式,但如果我的模式与cakePHP约定匹配,我不应该这样做。

      我错过了什么?

1 个答案:

答案 0 :(得分:5)

  

我的模型名为KitModel.php

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