Zpracování dat – dvě pole z jednoho formuláře
- Croc
- Člen | 270
Zdravím,
potřeboval bych vyřešit problém, při kterém po odeslání formuláře
zapíši část dat vždy do tabulky „A“ a pokud hodnota jednoho pole bude
„Y“, tak zbylá data zapíši do tabulky „B“. Formulář obsahuje také
data, která zpracuji, ale do databáze neukládám. Takže data z formuláře
se dají rozdělit na 3 části (tabulka A, tabulka B, zpracování).
Pokud použiji příkaz:
$row = $this->database->table(self::TABLE)->insert($values);
Tak mám všechny data z formuláře v jednom poli a Tracy mi samozřejmě vrátí chybu s neexistujícím sloupcem v DB.
Tímto bych se chtěl zeptat, je možné, aby mi formulář vrátil rovnou 3 pole? Je možné to nějak nadefinovat? Nebo není jiná možnost než pole $values zpracovat (rozdělit) až po odeslání?
Mohl bych to těď udělat že bych do každého insertu nadefinoval konrétní proměnné, ale toto řešení se mi krajně nelíbí.
Moc děkuju za rady :)
- Croc
- Člen | 270
V akci presenteru se snažím naplnit formulář defaultníma hodnotma, ale nejde mi to. Problém je, že ve formuláři mám 3 kontejnery.
Klasický formulář (bez kontejnerů) mi plnit jde a plním ho takto:
public function actionForm()
{
$row = $this->itemManager->getItemData()->fetch();
if(!$row){
$this->error('Item nebyl nalezen');
}
$this['itemForm']->setDefaults($row);
}
Nevíte jak plnit formulář kde mám 3 kontejnery? Díky moc
- David Matějka
- Moderator | 6445
Kazdy container tam posles jako pole:
->setDefaults(array(
'container1' => array(
'foo' => 'bar',
...,
),
...
);