2

通过使用 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',
                )
            )
        )
    );

似乎这两种方法都是无用的,而不是做的方式(希望如此)。

所以我的问题是,这样做的正确方法是什么?我错过了什么吗?

主要是,为什么我无法访问插件内的模型关联?

请帮忙。任何建议/答案表示赞赏。

谢谢,

4

0 回答 0