Naplnění select boxu pomocí Dibi fetchall
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- symmetry
- Člen | 71
Zdravím,
při vytváření formuláře volám metodu, které mi vrací pole výsledků
pro naplnění select boxu hodnota=>název.
$values = $photo->GetAllPhotoSections();
$form->addSelect('is_allowed','Vyberte sekci pro vložení',$values);
public function GetAllPhotoSections() {
$result = dibi::query('SELECT id, name_of_section FROM [tbl_photo_sections]');
$result->fetchAll();
Dibi::dump($result);
return $result;
}
Ať už ale vyzkouším fetchAssoc, fetchPairs vždy dostávám hlášku, že předávaný parametr do FormContainer::addSelect() must be an array.
Jak to tedy vyřešit?
Díky za každou radu..
- hurvajs
- Člen | 86
A nestacilo by neco takoveho:
<?php
$form->addSelect('is_allowed','Vyberte sekci pro vložení', $photo->GetAllPhotoSections());
?>
<?php
public function GetAllPhotoSections() {
return (array)dibi::query('SELECT id, name_of_section FROM [tbl_photo_sections]')
->fetchPairs('id', 'name_of_section');
}
?>
- hurvajs
- Člen | 86
symmetry napsal(a):
Ano, to by šlo, ale proč se musí návratová hodnota a její typ určovat již před definicí samotného SQL výrazu?
Jinak ale díky za radu.
Jde o přetypovani na pole. Ale u fetchPairs()
se vlastně
nemusí přetypovávat, protože už samotná metoda vrátí array
.
U fetchAll()
by se to použít muselo.