【问题标题】:cakePHP: Why are my model associations not working as a plugin?cakePHP:为什么我的模型关联不能作为插件工作?
【发布时间】:2010-10-15 18:23:37
【问题描述】:

我的关系如下。

  1. 游戏 -> hasMany Highscores
  2. 高分 -> 属于游戏,用户

当我独立运行 MVC 文件时(在应用程序目录中它们各自的位置),我得到了与高分相关的所有 belongsTo 数据。但是,当我在插件目录中运行与插件相同的 MVC 文件时,这些关联会丢失。

在我看来,一切都井井有条,但无济于事。我对 cakePHP 还很陌生,所以我确信这很愚蠢。然而,我终生无法弄清楚。

任何帮助将不胜感激。

我参考过:

book.cakephp.org/view/117/Plugin-Models trac.cakephp.org/ticket/3876 aranworld.com/article/143/cakephp-model-associations-from-within-plugin-directories

【问题讨论】:

    标签: model-view-controller cakephp cakephp-1.3


    【解决方案1】:

    您是否使用 PluginName 作为加入模型名称中的前缀来建立关系?

    这听起来很尴尬 - 示例

    <?php
        class MyModel extends AppModel
        {
            public $name = "MyModel";
            public $belongsTo = array(
                'User' => array(
                    'className' => 'SparkPlug.User',
                ),
            );
    ?>
    

    【讨论】:

      【解决方案2】:

      我最终使用了 bindModel 方法。

      $this->Highscore->bindModel(
          array('belongsTo' => array(
                  'User' => array(
                      'className' => 'SparkPlug.User'
                  )
              )
          )
      );
      

      不理想,仍然不确定为什么我的关系/关联会丢失。但这必须要做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-13
        • 2017-01-25
        • 2013-05-14
        • 2012-09-24
        • 1970-01-01
        相关资源
        最近更新 更多