【问题标题】:cakePHP: Why are my model associations not working as a plugin?cakePHP:为什么我的模型关联不能作为插件工作?
【发布时间】:2010-10-15 18:23:37
【问题描述】:
我的关系如下。
- 游戏 -> hasMany Highscores
- 高分 -> 属于游戏,用户
当我独立运行 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'
)
)
)
);
不理想,仍然不确定为什么我的关系/关联会丢失。但这必须要做。