如何将数据库表与ATK中的模型相关联?

时间:2011-09-01 14:40:20

标签: database model atk4

我有遗留代码,用于在上下文中存储临时数据。我想使用以下模型将其存储在数据库中:

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

我可以从旧版Controller中访问数据:

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

但我看不出如何将所有内容联系在一起(所有示例都使用表单链接到数据库)

感谢您的帮助,

格雷格。

1 个答案:

答案 0 :(得分:2)

我发现你的问题和代码有点令人困惑,但我会尽力帮助。

  1. 您不需要控制器就能使用您的模型。当调用$ form-> setModel()时,它会自动为你选择合适的控制器。

    $ PAGE->添加( 'MVCForm') - >则setModel( '为MyModel');

  2. 如果要将数据发送回数据库,则应调用$ form-> update()。您可以使用一个名为“FormAndSave

    的视图

    $ PAGE->添加( 'FormAndSave') - >则setModel( '为MyModel'); //也会将数据保存回数据库。

  3. 如果从数据库加载数据,则需要在模型上调用loadData()。您的最终代码可能如下所示(stickyGET确保它在表单提交处理程序中传递get参数):

    $这 - > API-> stickyGET( 'ID'); $ PAGE->添加( 'FormAndSave') - >则setModel( '为MyModel') - > loadData($ _ GET [ 'ID']);

  4. 方法调用()处理会话,因此好像您正在从会话中读取数据。如果您打算这样,并且希望在表单中看到会话变量的值,那么这将执行此操作:

    $形式 - >设置( 'MyField的',$这 - > API->召回( 'legacyString'));

  5. 我希望这会给你一些关于如何继续的提示。查看更多样本,http://agiletoolkit.org

    上有很多样本