2011-09-01 91 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