我正在使用codeigniter构建一个应用程序,该应用程序涉及向数据库添加一个带有多个电话号码的“看护人”。从UI方面来看,每个电话字段旁边都有一个添加按钮,它使用一些javascript魔法来克隆自己,以便用户输入另一个号码。提交表单后,电话号码将作为阵列提交。
我有两种型号设置:护理者和护理者_电话。每个模型都有自己的表格。
我一直在绞尽脑汁,以便在保存之前我可以获取datamapper以验证所有关系。例如,目前只显示护理者字段的验证错误,而没有显示carer_telephone字段的验证错误。
此外,我不确定这是否是处理此问题的最有效内存的方法,即为每个数字创建一个新的carer_telephone对象。
这必须是许多应用程序的常见设置,但我似乎无法找到有关该主题的任何文档。我正在寻找关于DataMapper的最标准的方法。
到目前为止控制器
function add() {
//Create carer object
$c = new carer();
//Create carer telephone object
$t = new carer_telephone();
//Form submitted
if($this->input->post('add_carer')) {
//Set carer data
$c->title = $this->input->post('title');
$c->first_name = $this->input->post('first_name');
$c->family_name = $this->input->post('family_name');
$c->display_name = $this->input->post('display_name');
$c->date_of_birth = $this->input->post('date_of_birth');
$c->email_address = $this->input->post('email_address');
$c->street_address = $this->input->post('street_address');
$c->town = $this->input->post('town');
$c->county = $this->input->post('county');
$c->postcode = $this->input->post('postcode');
//Set and save telephones
foreach($this->input->post('telephone') as $tel) {
$t = new carer_telephone();
$t->type = 'test';
$t->number = $tel;
$c->save($t);
}
}
//Store carer object
$this->_data['content']['carer'] = $c;
//Load view
$this->load->view('carers/add',$this->_data);
}
对此的任何帮助将不胜感激。甚至只是链接到某个人已经处理过这种情况的例子。
祝你好运, 丹
答案 0 :(得分:1)
DataMapper附带了一个可能对您有用的数组扩展:http://datamapper.wanwizard.eu/pages/extensions/array.html - 允许您将数组数据保存到数据库等。