2013-08-21 32 views
0

我的一個視圖必須顯示來自外部API調用的數據。Cakephp調用組件

要管理所有這些API調用,我創建了一個組件。

現在爲了成本分頁我必須在我的模型內部創建一個函數,但是因爲我沒有使用模型表,而是組件我必須在我的模型中調用該組件。

這是可能的還是有解決方法?

+0

解決方案:http://stackoverflow.com/a/25404606/216084(如果這是最佳實踐,則無法評論)。 –

回答

2

要管理所有這些API調用,我已經創建了一個組件。

這顯然是錯誤的,主要是因爲你不必這樣做。從技術上講,你可以,但它會是錯誤的架構明智的。

在CakePHP中實現API訪問的最正確方法是爲該API創建數據源並將該數據源與模型一起使用。

data source page in the CakePHP book附帶了如何創建調用外部API的數據源的完整示例。

將它作爲數據源允許您在多種模型中使用API​​,如果API提供了不同的內容,則可以使用該API。例如,您可以使用GithubDatasource來創建GithubUser和GithubRepository模型。此外,數據源更容易測試組件。

+0

所以你說什麼,我應該而不是有一個組件使用模型? –

+0

再次閱讀我的文本,它非常清楚我在說什麼:我說的是使用數據源並將其與模型一起使用。數據源是與數據庫或API交談的部分,模型是對數據源提供的數據執行某些操作的部分。 – burzum

+1

「顯示來自外部API調用的數據」顯然意味着顯示來自其他來源的數據。所以@burzum的答案和Cake結構對於做這件事非常合乎邏輯:創建一個新的數據源。 – nIcO

0

我會建議通過在模型中創建函數來更好地實現組件的所有功能。

你可以共享該模型的乘法控制器。

作爲您的問題,在這裏您可以在模型中使用您的模型功能。