【问题标题】:Cakephp Request data from other controllerCakephp 从其他控制器请求数据
【发布时间】:2011-06-22 03:52:25
【问题描述】:

是否可以从 cakePHP 中的其他控制器请求数据?

例如,我在名为 search 和 update 的页面中创建了 2 个文件夹(均带有 index.ctp),并在正确的文件夹中创建了一个控制器和模型。

两个页面都使用不同的数据库源,我想将搜索控制器中的一些数据显示到更新页面的视图中..

这可能吗?

问候, 斯文

【问题讨论】:

  • 你可以打电话给$this->Controller->method(),它应该返回数据,但你可能需要添加uses(),这是肮脏的黑客;)

标签: php cakephp controllers


【解决方案1】:

在 MVC / CakePHP 的原理上备份一秒钟可能会对您有所帮助。

通常,您的控制器应处理请求的所有方面——调度、收集数据等。您的模型是数据层的控制点。而且,很明显,您的视图是实际的显示逻辑和输出。

如果您在另一个控制器中发生了一些数据操作,我建议您将这些方法迁移到相关的数据模型中。这更适合 Cake 中的关注点分离模型。但是,此外,您可以将附加模型添加到第二个控制器中的 $uses 变量中,这将允许您访问其中的所有方法。

关于 $uses 的一个注意事项:确保包括外部(其他)模型以及当前模型。假设您在 OrangeController 中并且想要包含 Apple 模型,您会(在 OrangeController 定义中):

class OrangeController extends AppController {
 var $uses = array( 'Orange', 'Apple' );
 // other stuff
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 2014-11-30
    • 2018-01-18
    • 1970-01-01
    相关资源
    最近更新 更多