【发布时间】:2013-08-23 18:13:09
【问题描述】:
我的一个视图必须显示来自外部 API 调用的数据。
为了管理所有这些 API 调用,我创建了一个组件。
现在为了进行成本分页,我必须在我的模型中创建一个函数,但是因为我没有使用模型表,而是我必须在我的模型中调用该组件的组件。
这是可能的还是有解决方法?
【问题讨论】:
-
解决方案:stackoverflow.com/a/25404606/216084(如果这是最佳做法,无法评论)。
我的一个视图必须显示来自外部 API 调用的数据。
为了管理所有这些 API 调用,我创建了一个组件。
现在为了进行成本分页,我必须在我的模型中创建一个函数,但是因为我没有使用模型表,而是我必须在我的模型中调用该组件的组件。
这是可能的还是有解决方法?
【问题讨论】:
为了管理所有这些 API 调用,我创建了一个组件。
这是完全错误的,主要是因为您不必这样做。从技术上讲你可以,但在架构方面是错误的。
在 CakePHP 中实现 API 访问的最正确方法是为该 API 创建一个数据源并将该数据源与模型一起使用。
data source page in the CakePHP book 附带一个完整示例,说明如何创建调用外部 API 的数据源。
将其作为数据源允许您将 API 与多个模型一起使用,如果 API 提供不同的东西,这是有意义的。例如,您可以拥有一个 GithubUser 和一个使用 GithubDatasource 的 GithubRepository 模型。此外,数据源比组件更容易测试。
【讨论】:
我会建议通过在模型中创建函数来更好地将组件的所有功能实现到模型中。
您可以为多人控制器共享该模型。
作为你的问题,在这里你可以在模型中使用你的模型函数。
【讨论】: