是否可以从 cakePHP 中的其他控制器请求数据?
例如,我在名为 search 和 update 的页面中创建了 2 个文件夹(均使用 index.ctp),并在正确的文件夹中创建了一个控制器和模型。
两个页面都使用不同的数据库源,我想将搜索控制器中的一些数据显示到更新页面的视图中。
这可能吗?
问候,斯文
是否可以从 cakePHP 中的其他控制器请求数据?
例如,我在名为 search 和 update 的页面中创建了 2 个文件夹(均使用 index.ctp),并在正确的文件夹中创建了一个控制器和模型。
两个页面都使用不同的数据库源,我想将搜索控制器中的一些数据显示到更新页面的视图中。
这可能吗?
问候,斯文
在 MVC / CakePHP 的原理上备份一秒钟可能会对您有所帮助。
通常,您的控制器应该处理请求的所有方面——调度、收集数据等。您的模型是数据层的控制点。而且,很明显,您的视图是实际的显示逻辑和输出。
如果您在另一个控制器中发生了一些数据操作,我建议您将这些方法迁移到相关的数据模型中。这更适合 Cake 中的关注点分离模型。但是,此外,您可以将附加模型添加到第二个控制器中的 $uses 变量中,这将允许您访问其中的所有方法。
关于 $uses 的一个注意事项:确保包括外部(其他)模型以及当前模型。假设您在 OrangeController 中并且想要包含 Apple 模型,您将(在 OrangeController 定义中):
class OrangeController extends AppController {
var $uses = array( 'Orange', 'Apple' );
// other stuff
}