Jak nastavit setDefaultValue (pole hodnot)
- ForestCZE
- Člen | 209
Ahoj
mám formulář:
$form->addMultiSelect('assistants', 'Asistence:')
->setItems($this->assistants, false)
->setRequired(false)
->setHtmlAttribute('size', 20);
$this->assistants
je pole uživatelů.
Při přidávání záznamu do DB na to pole použiju implode
a
pošlu to DB jako string:
$assistants = implode(", ", $values->assistants);
Při editaci si to vytáhnu a použiju naopak explode
, abych
měl zase pole:
$assistants = explode(",", str_replace(" ", "", $this->editedMessage->assistants));
Poté se to pole snažím nastavit jako výchozí hodnotu:
$form['assistants']->setDefaultValue($assistants);
Dostanu však chybu:
Values 'JakobsonLucas', 'BelliniSally' are out of allowed set ['Jakobson Lucas', 'Williams John', 'Bunker Kurt ', 'Lin Shu', 'K-9...] in field 'assistants'.
Co dělám špatně? Přijde mi to v pořádku.
- ForestCZE
- Člen | 209
Michalek napsal(a):
Nechybí v hodnotách mezera mezi jmény?
Jo, pravda. To bude nejspíš tím. Akorát mě teda nenapadá, jak to vyřešit.
EDIT: Tak to mám. Stačilo:
$assistants = explode(", ", ltrim($this->editedMessage->assistants));
Díky moc za nakopnutí.
Editoval ForestCZE (14. 5. 2021 16:48)
- Michal Kumžák
- Člen | 106
Podle mě tam máš ten LTRIM zbytečně. Ten implode ti ty mezery nestrká jen mezi ty jednotlivá jména.