2014-02-12 69 views
0

是否可以定義模型以從外部網站檢索數據?我已經看到,當數據存在於本地數據庫中時,使用模型創建一些crud接口非常容易。 但我想要做的是使用一些基於搜索表單的外部網站API(以json格式)提供的數據,然後以表格形式呈現,就像MVCGrid一樣,因此用戶可以選擇一些記錄以將它們保存到本地數據庫。 我有邏輯來檢索控制器中的數據,但我不知道如何使用模型類中的此控制器來填寫所有字段。atk4模型,從外部網站檢索數據

+0

確定這是可能的!你可以擴展(或覆蓋)一些Model類的方法,比如load(),save()等。在這種情況下,Custom Controller也是一種方法。但有一點你必須記住 - 使用一些緩存機制!否則,您的模型將在每次初始化,每次頁面加載,每次排序,刷新等時請求外部數據......這樣它將變得非常慢,並且您可以垃圾郵件外部API。 – DarkSide

+0

看來,有更好的方式來做我所需要的。研究模型類我發現有一個JSONRPC數據控制器可以爲模型設置,它管理所有的請求和緩存。我會調查它。 – roco3d

+0

是的,但我沒有使用過。如果我沒有記錯的話,那麼前段時間當我需要爲我的項目進行外部數據導入/同步時,它還沒有完全完成。但也許我錯了。還得自己檢查一下。無論如何,請讓我知道你的調查結果! :) – DarkSide

回答

0

Agile Toolkit 4.3具有全新的數據源定義方式。這裏是一些數據控制器。基本上你只需要擴展該類:

https://github.com/atk4/atk4/blob/4.3/lib/Controller/Data.php

這裏只是一些例子:

JSONRPC並沒有真正實現CRUD樣訪問模型,它更像是一個透明的RPC,所以我選擇顯示REST。