我有遗留代码,用于在上下文中存储临时数据。我想使用以下模型将其存储在数据库中:
class Model_MyModel extends Model_Table {
function init(){
parent::init();
$this->addField('myString');
}
}
我可以从旧版Controller中访问数据:
class Controller_LegacyController extends Controller {
$myString = $this->api->recall("legacyString");
}
但我看不出如何将所有内容联系在一起(所有示例都使用表单链接到数据库)
感谢您的帮助,
格雷格。
答案 0 :(得分:2)
我发现你的问题和代码有点令人困惑,但我会尽力帮助。
您不需要控制器就能使用您的模型。当调用$ form-> setModel()时,它会自动为你选择合适的控制器。
$ PAGE->添加( 'MVCForm') - >则setModel( '为MyModel');
如果要将数据发送回数据库,则应调用$ form-> update()。您可以使用一个名为“FormAndSave
的视图$ PAGE->添加( 'FormAndSave') - >则setModel( '为MyModel'); //也会将数据保存回数据库。
如果从数据库加载数据,则需要在模型上调用loadData()。您的最终代码可能如下所示(stickyGET确保它在表单提交处理程序中传递get参数):
$这 - > API-> stickyGET( 'ID'); $ PAGE->添加( 'FormAndSave') - >则setModel( '为MyModel') - > loadData($ _ GET [ 'ID']);
方法调用()处理会话,因此好像您正在从会话中读取数据。如果您打算这样,并且希望在表单中看到会话变量的值,那么这将执行此操作:
$形式 - >设置( 'MyField的',$这 - > API->召回( 'legacyString'));
我希望这会给你一些关于如何继续的提示。查看更多样本,http://agiletoolkit.org
上有很多样本