Nette/Database/Selection – foreach nad jednim vysledkem?
- Pix
- Člen | 5
Dobré odpoledne,
právě jsem nainstaloval Nette pomocí composeru, ale zjistil že se nechová
tak, jak jsem byl zvyklý-očekával jsem…
V presenteru:
private $database;
public function __construct(Nette\Database\Context $database) {
$this->database = $database;
}
public function renderDefault() {
$this->template->tests = $this->database->table("tests")->where('id', '31');
}
V šabloně
{$tests->name}
Očekával jsem, že se vypíše obsah sloupce „name“, místo toho vypíše název tabulky
Oproti tomu:
{foreach $tests as $test}
{$test->name}
{/foreach}
Už se chová tak jak chci. Znamená to tedy že musím použít foreach i nad jedním řádkem? Co dělám špatně-jak to mám udělat jinak?
Děkuji
- voda
- Člen | 561
Výběr jednoho konkrétního řádku se provádí pomocí metody Selection::get(). Je to „filtrovací“ metoda, která vrací přímo instanci ActiveRow.
viz dokumentace
- Filip Klimeš
- Nette Blogger | 156
Selection::get($key)
vrací jeden konrétní řádek podle
klíče $key
. Pokud potřebuješ složitější podmínku, můžeš
použít Selection::fetch()
, který vrátí první řádek
v Selection (další volání by vracela prvky tak jak jdou za sebou).