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

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.

Šaman
Člen | 2666
+
0
-

Edit: Nastavuješ $rowRoles místo $roleArray.

Editoval Šaman (6. 2. 2015 15:20)

tttpapi
Člen | 100
+
0
-

Super, díky.