Doctrine2 – návrat dat stejně jako ->fetch(id, name) z Nette\Database
- Tomáš Jablonický
- Člen | 115
Ahoj,
potřebuji vložit data do selectboxu ve formátu Array(primaryKey ⇒ name). Pro práci s databází využívám Doctrine2. Bohužel, již to hledám déle a zdá se, že nic podobného ->fetch(id, name) z Nette\Database neumí.
Má se tedy dopsat třída pro naformátování pole nebo Doctrine2 něčím takovým disponuje?
- Tomáš Jablonický
- Člen | 115
Asi to není správné řešení, ale využil jsem fetchAll() a výsledné pole naformátoval přes foreach:
<?php
...
public function getRoles()
{
$rows = $this->connection->fetchAll('SELECT * FROM role');
$roles = array();
foreach ($rows as $key => $value) {
$roles[$value['id']] = $value['name'];
}
return $roles;
}
...
?>
- Michal Vyšinský
- Člen | 608
Já bych toto řešil vlastním EntityRepository, kde bych si udělal metodu fetchPairs kde by byl ten foreach co máš v tom getRoles(). U toho budeš mít výhodu, že pak voláš jen ..->fetchPairs(„id“,„name“) a nebudeš to muset psát pokaždé znovu.
- Tomáš Jablonický
- Člen | 115
@mkoubik … to zní rozumněji než vlasní repository :-)
@CherryBoss … to je ale řešení nad jednou Entity (možná se mýlím) :-)