Jak nastavit setDefaultValue (pole hodnot)

ForestCZE
Člen | 209
+
0
-

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.

Michalek
Člen | 211
+
+1
-

Nechybí v hodnotách mezera mezi jmény?

ForestCZE
Člen | 209
+
0
-

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
+
0
-

Podle mě tam máš ten LTRIM zbytečně. Ten implode ti ty mezery nestrká jen mezi ty jednotlivá jména.