我有在上下文中存储临时数据的遗留代码。我想使用以下模型将其存储在数据库中:
class Model_MyModel extends Model_Table {
function init(){
parent::init();
$this->addField('myString');
}
}
我可以从传统控制器中访问数据,因此:
class Controller_LegacyController extends Controller {
$myString = $this->api->recall("legacyString");
}
但是我看不出如何将所有的东西联系在一起(所有的例子都使用一个表单链接到数据库)
谢谢你的帮助,
格雷格。
最佳答案
我觉得你的问题和代码有点混乱,但我会尽力帮忙的。
你不需要控制器就能使用你的模型。当调用$form->setmodel()时,它会自动为您选择正确的控制器。
$page->add('mvcform')->setmodel('mymodel');
当您想将数据发送回数据库时,应该调用$form->update()。有一个视图可以使用,它将为您调用:FormAndSave
$page->add('formandsave')->setmodel('mymodel');//也会将数据保存回数据库。
如果从数据库加载数据,则需要对模型调用loadData()。最后的代码可能如下所示(Stickyget确保它在表单提交处理程序中传递get参数):
$this->api->stickyget('id');
$page->add('formandsave')->setmodel('mymodel')->loaddata($_get['id']);
方法recall()处理会话,因此看起来好像是在从会话中读取数据。如果您希望看到表单中会话变量的值,则可以执行以下操作:
$form->set('myfield',$this->api->recall('legacysting');
我希望这能给你一些关于如何继续的提示。查看更多的样本,有很多样本在http://agiletoolkit.org
关于database - 如何将数据库表与ATK中的模型相关联?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7271952/