Zend db表适配器提供了返回数组对的fetchPairs函数(id => idvalue,...),
$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select()->from('users', array('id', 'username'));
$roleOptions = $db->fetchPairs($select);
可以在zend表单元素中加载
$this->addElement('select', 'user', array(
'label' => 'Select user:',
'required' => true,
'multiOptions' => $roleOptions
));
Doctrine中有哪些等效功能?
我知道我们可以通过循环记录集来实现这个目的:)
但我想用正确的方式以正确的方式做到这一点。
答案 0 :(得分:1)
您可以将\PDO::FETCH_KEY_PAIR
模式与原则here一起使用。
示例:
$statement = $connection->query('SELECT id, username FROM users');
$pairs = $statement->fetchAll(\PDO::FETCH_KEY_PAIR);
答案 1 :(得分:0)
正确的方法是循环对象。
$q = $em->createQuery("select u from MyApp\Domain\User u");
foreach ($q->getResult() as $user){
//process it here
}
不太正确的方式:partial objects
$q = $em->createQuery("select partial u.{id,name} from MyApp\Domain\User u");
foreach ($q->getResult() as $user){
//process it here the same way as above
}
答案 2 :(得分:0)
在存储库类中,方法的主体
$qb = $this->_em->createQueryBuilder();
$qb->select('t.id, t.param1, t.param2')
->from($this->_entityName, 't INDEX BY t.id');
$res = $qb->getQuery()->getResult();
$ result将包含
array(
1 => array(
id = 1,
param1= val2,
param2=val2
),
...,
234 => array(
id = 234,
param1= val234,
param2=val234
)
);