如何使用直接来自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作为选项值,把一些对象属性作为选择标签。
我知道我可以运行foreach遍历行集并构造一个选项数组,但可能有某种映射函数?
您创建的任何映射函数都将迭代行集,因此您也可以简单地执行此操作,例如
foreach ($users as $user) {
$select->addMultiOption($user->id, $user->someObjectProperty);
}
您还可以考虑剪裁一个模型方法,以返回您想要使用的数组。也许类似于:
public function fetchSelectList() {
$resultSet = $this->fetchAll();
$entries = array();
foreach ($resultSet as $row) {
$entry['id'] = $row->id;
$entry['name'] = $row->name;
$entries[] = $entry;
}
return $entries;
}