通过使用CakePHP 2.4框架,我正在尝试实现一个Admin站点和Json插件来访问它的内容数据。
所以,我只是使用了bake命令并为它创建了管理站点和插件。仅为站点(app)创建的模型类不是为插件创建的。我也计划访问插件控制器的应用程序模型类。
-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模型中。)
this->Comment->bindModel(
array('belongsTo' => array(
'Post' => array(
'className' => 'Post',
'foreignKey' => 'post_id',
)
)
)
);
似乎这两种方法都没用,也没有办法(希望如此)。
所以我的问题是,正确的方法是什么?我错过了什么吗?
主要是,为什么我无法访问插件中的模型关联?
请帮忙。任何建议/答案都表示赞赏。
谢谢,