Nextras\Forms multiOption setDeaultValues
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- tttpapi
- Člen | 100
Mám formulář
<?php
$userContainer = $this->addContainer('user');
$userContainer->addText('name', 'Jméno uživatele:', 30)
->addRule(self::FILLED, 'Je nutné zadat jméno uživatele.');
$userContainer->addText('username', 'Přihlašovací jméno:', 30)
->addRule(self::FILLED, 'Je nutné zadat přihlašovací jméno uživatele.');
$userContainer->addPassword('password', 'Nové heslo:', 30);
$userContainer->addPassword('confirmPassword', 'Potvrzení hesla:', 30);
$roleContainer = $this->addContainer('role');
$roleContainer->addMultiOptionList('roles', 'Vyberte role', $roleRepository->findBy(array('active' => 1))->fetchPairs('id', 'title'));
?>
A snažím se mu nastavit default values:
<?php
$row = $this->userRepository->findRow($id);
$rowRoles = $this->userRoleRepository->findBy(array("user_id" => $id));
if (!$row) {
throw new BadRequestException();
}
unset($row->password);
$roleArray = new \Nette\ArrayHash();
foreach ($rowRoles as $role)
{
$roleArray->roles[] = $role->role_id;
}
$form['user']->setDefaults($row);
$form['role']->setDefaults($rowRoles);
?>
Zkoušel jsem to, i když jsem dal fetchPairs a nic mi nepomohlo. UserContainer to naplní správně, ale ten roleContainer to nechce naplnit.
Díky za nápady.