【发布时间】:2012-07-30 20:18:59
【问题描述】:
我正在使用 CodeIgniter 开发一个网站。这是基本的,除了它有一些巨大的表单(150 个字段)一些动态创建/锁定/预定义/删除等。
我在表单和数据库之间进行转换时遇到了麻烦,这当然非常复杂。我的意思是表单的提交在某些表格中插入了不止一行,甚至没有保存一些数据。 (一些单选按钮等)
我创建了一个非常大的对象,其中包含尽可能多的以表单输入名称命名的属性,以便使用 $_POST 数据填充:
foreach ($largeObj as $key=>$value)
{
if (isset($_POST[$key])){
$largeObj[$key]=$value; //mind the data escaping
}
}
当然这只适用于一半的输入,对于其他的我需要做这样的事情:
$largeObj['tanks']=Array();
for ($i=0;$i<$_POST['nbrTanks'];$i++){
$tank=new Tank();
// some if's in order to set some properties
$largeObj['tanks'][]=$tank;
}
然后我进行所有计算并准备我的 DTO,以便在每个表中插入相应的数据。顺便说一句,我使用 PHPDAO 来映射数据库表,因为它们有点太大而无法编写整个 CRUD 操作。
有没有更好的方法?注释驱动或更有效的方式,因为我还需要用我的数据库中的数据填充整个表单。欢迎提出任何建议。
【问题讨论】:
标签: php codeigniter view model