【问题标题】:Cakephp calling component from ModelCakephp 从 Model 调用组件
【发布时间】:2013-08-23 18:13:09
【问题描述】:

我的一个视图必须显示来自外部 API 调用的数据。

为了管理所有这些 API 调用,我创建了一个组件。

现在为了进行成本分页,我必须在我的模型中创建一个函数,但是因为我没有使用模型表,而是我必须在我的模型中调用该组件的组件。

这是可能的还是有解决方法?

【问题讨论】:

标签: php cakephp


【解决方案1】:

为了管理所有这些 API 调用,我创建了一个组件。

这是完全错误的,主要是因为您不必这样做。从技术上讲你可以,但在架构方面是错误的。

在 CakePHP 中实现 API 访问的最正确方法是为该 API 创建一个数据源并将该数据源与模型一起使用。

data source page in the CakePHP book 附带一个完整示例,说明如何创建调用外部 API 的数据源。

将其作为数据源允许您将 API 与多个模型一起使用,如果 API 提供不同的东西,这是有意义的。例如,您可以拥有一个 GithubUser 和一个使用 GithubDatasource 的 GithubRepository 模型。此外,数据源比组件更容易测试。

【讨论】:

  • 那么你的意思是我应该而不是让组件使用模型?
  • 再次阅读我的文字很清楚我在说什么:我说的是使用数据源并将其与模型一起使用。数据源是与数据库或 API 对话的部分,模型是对数据源提供的数据执行某些操作的部分。
  • “显示来自外部 API 调用的数据”显然意味着显示来自其他来源的数据。所以@burzum 的回答和Cake 结构对于这样做是很合乎逻辑的:创建一个新的数据源。
【解决方案2】:

我会建议通过在模型中创建函数来更好地将组件的所有功能实现到模型中。

您可以为多人控制器共享该模型。

作为你的问题,在这里你可以在模型中使用你的模型函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    相关资源
    最近更新 更多