通过使用 CakePHP 2.4 框架,我正在尝试实现一个管理站点和 Json 插件来访问它的内容数据。
所以,我只是使用了烘焙命令并为其创建了管理站点和插件。仅为站点(应用程序)而不是为插件创建的模型类。我也计划访问插件控制器的应用程序模型类。
-MyProject
--app
--Model
--AppModel.php
--Post.php
--Comment.php
--Plugin
--MyPlugin
--Model
--MyPluginAppModel.php
*请注意,所有其他文件和结构保持不变。
我有模特协会,一篇评论很多
所以在我的插件控制器(CommentsController.php)中我使用了这段代码
$temp = $this->Comment->Post->findById($post_id);
它给了我错误“ 在非对象上调用成员函数 findById() ”
但是当我访问时,
$temp = $this->Comment->findById($comment_id);
这工作正常。
然后我找到了两个可行的解决方案,如下所示。
1-为插件创建相同的模型类
2- 在控制器内部使用 bindModel 函数
(Comment.php 模型中已经存在此 belongsTo 关系。)
this->Comment->bindModel(
array('belongsTo' => array(
'Post' => array(
'className' => 'Post',
'foreignKey' => 'post_id',
)
)
)
);
似乎这两种方法都是无用的,而不是做的方式(希望如此)。
所以我的问题是,这样做的正确方法是什么?我错过了什么吗?
主要是,为什么我无法访问插件内的模型关联?
请帮忙。任何建议/答案表示赞赏。
谢谢,