ulozeni hodnot z checkboxu do databaze
- dryb
- Člen | 8
Ahoj,
vytvořím ve formuláři kontejner s checkboxy, naplním hodnotami
z databáze, pak některé checkboxy na stránce zakliknu, ale při pokusu
o uložení do databáze se ukládají původní hodnoty a ne ty nové. Co je
špatně? Díky.
protected function createComponentUserGroupForm()
{
$form = new Form();
$container = $form->addContainer(‚rights‘);
$rights =
$this->rightRepository->findAll()->order(‚name ASC‘);
foreach ($rights as $right)
{
$container->addCheckbox($right->right_id, $right->description)
->setDefaultValue( false );
}
$form->addSubmit(‚create‘, ‚Uložit‘);
$form->onSuccess[] = $this->userGroupFormSucceeded;
return $form;
}
public function actionUserGroupEdit($userGroupId)
{
.
.
$rights = $this[„userGroupForm“]->getComponent(„rights“);
foreach ($rights->getControls() as $right)
{
$isRightSet =
$this->userGroupRepository->isRightSet($this->userGroupId,$right->getName()
);
$right->setValue($isRightSet <> null );
}
}
public function userGroupFormSucceeded(Form $form)
{
.
.
$rights = $form->getComponent(„rights“);
foreach ($rights->getControls() as $right)
{
$right_id = $right->getName();
if( $right->getValue() )
{
$this->userGroupRepository->setRight( $this->userGroupId, $right_id
);
}
}
.
.
}
- jiri.pudil
- Nette Blogger | 1032
V actionUserGroupEdit metodě (která se vykoná
ještě před zpracováním formuláře) si tu odeslanou hodnotu vždycky
přepíšeš. Volej tam setDefaultValue()
místo
setValue()
. A příště prosím formátovat
kód, v tomhle se moc nedá vyznat.