Option slected nacteny z DB

scientific
Člen | 93
+
0
-

Ahoj všem,

učím se dělat formuláře.

Umím načítat data z databáze do labelu, ale chtěl bych umět ta dyta načítat i do option selectu.

  1. Ve vytvářecím formuláři mám select, kterým se vybere hodnota.
  2. Ta se uloží do databáze.
  3. V editačním formuláři mám pouhý label, který vypisuje hodnotu, ale už ji neumím změnit, k tomu řeším tento problém.

Moje form metoda vypadá takto:

$this->parent = $parent;
$kategorie = $this->parent->admin->getModelFetchPairs();
$this->addSelect('model_id', '', $kategorie)->setPrompt('- vyber kategorii -');

Moje latte sablona vypada takto:

{if $editace}
	{if $category}
	<div class="form_row">
		<label>Kategorie - Možnost volby selectem vypisuje "- vyber kategorii -"</label>
		<span class="value">
			<select n:name="category_id" class="value"></select>
		</span>
		<label>Kategorie - Vypis funguje</label>
		<span class="value">{$category->name}</span>
	</div>
	{/if}
{/if}

Možná je toto nějak cesta:

$this->addSelect('model_id', '', $kategorie)->setDefaults(neco);

Jak to prosím zařídit?

Kamil Valenta
Člen | 752
+
+3
-

Buď nad celým formem:

$form->setDefaults(['model_id' => $id_modelu_nactene_z_db]);

Nebo nad samotným inputem:

$this->addSelect('model_id', '', $kategorie)->setDefaultValue($id_modelu_nactene_z_db);
scientific
Člen | 93
+
0
-

Super, setDefaultValue trochu funguje.
Trochu protože funguje jen v případě, že ta defaultní hodnota fakt existuje.
Když třeba editovaný článek doposud nebyl zařazen v žádné kategorii, tak $id_modelu_nactene_z_db je prázdné a tudíš se v selectu objeví první kategorie z DB, nikoliv prázdné pole.

EDIT: Vyřešil jsem to takto

if(!empty($idDefaultVideo->id)){
			$this->addSelect('video_id', '', $videos)->setDefaultValue($idDefaultVideo->id);
		} else {
			$this->addSelect('video_id', '', $videos)->setPrompt('- vyberte video -');
}

Vyřešeno tedy, díky.