Zend Framework:如何连接两列仍然使用fetchPairs()?

And*_*rew 3 zend-framework zend-form zend-db

我有一个带有select元素的表单,我需要用数据库中的值填充它.具体来说,是当前用户的名称和ID.该fetchPairs()功能非常适用于此!但是,我需要连接first_name列和last_name列的值,并将其显示为选项标签.有没有办法做到并仍然使用fetchPairs()?如果没有,我怎样才能达到相同的效果?以下是目前正在运行的代码的摘录:

<?php // excerpt

class Default_Form_AddUser extends Zend_Form
{
    public function init()
    {
        $this->addElement('select', 'user', array(
            'label'      => 'Select user:',
            'required'   => true,
            'multiOptions' => $this->_getSelectOptions()
        ));
    }

    protected function _getSelectOptions()
    {
        $db = Zend_Db_Table::getDefaultAdapter();
        $select = $db->select()->from('users', array('id', 'first_name'));
        $roleOptions = $db->fetchPairs($select);
        return $roleOptions;
    }
}
Run Code Online (Sandbox Code Playgroud)

Jor*_*ore 11

protected function _getSelectOptions()
{
    $db     = Zend_Db_Table::getDefaultAdapter();
    $select = $db->select()->from('users', array(
        'id',
        'name' => new Zend_Db_Expr("CONCAT(first_name, ' ', lastname)"),
    ));

    return $db->fetchPairs($select);
}
Run Code Online (Sandbox Code Playgroud)