如何使用Zend_Db_Table_Row中的选项直接填充Zend_Form_Element_Select?
例如:
$select = new Zend_Form_Element_Select('user_id', array(
'required' => true
));
// fetching users for select
$userTable = new User_Model_DbTable_User();
$users = $userTable->fetchAll();
$select->addMultiOptions($users->toArray());
但这不会有好处。假设我想将对象id作为选项值,将某些对象属性作为选择标签。
我知道我可以运行foreset thourgh the rowset并构造一个选项数组但是可能有某种map函数?
答案 0 :(得分:2)
您创建的任何 map 函数都将迭代行集,因此您可以简单地执行此操作,例如
foreach ($users as $user) {
$select->addMultiOption($user->id, $user->someObjectProperty);
}
答案 1 :(得分:2)
您还可以考虑定制模型方法以准确返回您想要使用的数组。 也许类似于:
public function fetchSelectList() {
$resultSet = $this->fetchAll();
$entries = array();
foreach ($resultSet as $row) {
$entry['id'] = $row->id;
$entry['name'] = $row->name;
$entries[] = $entry;
}
return $entries;
}