我的数据库表中有一些字段,还有一个带有电话名称的字段,我保存了这个字段的值,如111-222-5555
现在我想阅读我的所有字段,并填充到我的表单,我喜欢填充电话归档到3个元素(作为文本元素)
当我尝试这段代码时
$id = $this->_request->getParam ( 'id' );
$values = $cutomModel->findCustomerById($id);// return array of row
$frm->populate($values);
除电话字段外,所有字段均以表格形式显示
如何将手机字段填充到3个元素
感谢
答案 0 :(得分:0)
从我(几乎)不了解的情况来看,您正试图在数据库表中填写一个表单的3个元素和一个字段(电话)的内容。
要实现此目的,您可以使用setDefault()
对象的Zend_Form
方法。像这样:
$frm->setDefault('field_name', $values->phone);
在populate()
之后以及希望填充自定义值的每个字段执行此操作。
答案 1 :(得分:0)
如果我正确理解您的问题,首先您需要创建3个单独的表单字段(类似于phone_1,phone_2和phone_3的行)以保存3个单独的电话段。然后在填充字段之前,将1字段的数据库输出分成3个字段。
$id = $this->_request->getParam ( 'id' );
$values = $cutomModel->findCustomerById($id);// return array of row
// split phone number into 3 values
list($values['phone_1'], $values['phone_2'], $values['phone_3']) = explode('-', $values['phone'], 3);
$frm->populate($values);
最后,在将表单输入插入数据库之前,必须将3个字段的输入组合到1个字段中。
$values = $frm->getValues();
// combine phone number into 1 value
$values['phone'] = implode('-', $values['phone_1'], $values['phone_2'], $values['phone_3'])
$cutomModel->insert($values);