我正在 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 操作。
有更好的方法吗?注释驱动或更有效的方式,因为我还需要用我的数据库中的数据填充整个表单。欢迎任何建议。