2011-09-01 82 views
2

我有遺留的代碼,在上下文中存儲臨時數據。我想用下面的模型來其存儲在DB:如何將數據庫表與ATK中的模型關聯?

class Model_MyModel extends Model_Table { 
    function init(){ 
     parent::init(); 
     $this->addField('myString'); 
    } 
} 

我可以從傳統的控制器內。因此訪問數據:

class Controller_LegacyController extends Controller { 
    $myString = $this->api->recall("legacyString"); 
} 

,但我看不出如何配合一切在一起(所有的例子使用的一種形式鏈接到DB)

感謝您的幫助,

格雷格。

回答

2

我發現你的問題和代碼有點混亂,但我會盡力幫忙。

  1. 你不需要控制器就可以使用你的模型。當調用$ form-> setModel()時,它會自動爲您選擇正確的控制器。

    $ PAGE->加( 'MVCForm') - >則setModel( '爲MyModel');

  2. 當您要發送的數據回數據的基礎上,你應該調用$形式 - > update()方法。有一個視圖,你可以使用,這將爲你做到這一點叫:FormAndSave

    $ page-> add('FormAndSave') - > setModel('MyModel'); //也將數據保存回數據庫。

  3. 如果從數據庫加載數據,則需要調用loadData()的模型。你最終的代碼可能是這樣的(stickyGET確保它傳遞進去形式參數提交處理程序):

    $這個 - > API - > stickyGET(「身份證」); ('FormAndSave') - > setModel('MyModel') - > loadData($ _ GET ['id']);

  4. 方法調用()與會話交易,如此看來,如果你是從會話中讀取數據。如果你打算這樣做,並且你希望在表單中看到會話變量的值,那麼這將做到這一點:

    $ form-> set('myfield',$ this-> api-> recall('legacyString' ));

我希望這會給你一些關於如何繼續的提示。通過看更多的樣本,有很多人對http://agiletoolkit.org

+0

嗨Romaninsh,感謝您的答覆。重新閱讀我的問題我意識到我不明白我想問什麼,因此可以理解你發現它很混亂。我想定義一個模型來輕鬆訪問數據庫,但不使用表單。我最終在http://agiletoolkit.org/learn/understand/model/intro和http://agiletoolkit.org/intro/models上找到了我正在尋找的東西(閱讀您的提示之後)。簡而言之:$ model = $ this-> add(Model_MyModel) - > set(...) - > update();謝謝你的幫助。考慮到這個問題並沒有真正的答案,我會接受你的回答。 – BlueBiscuit

+0

我很高興它爲你解決。 – romaninsh

相關問題