user identity převést do pole pro použití ve form->setDefaults

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
dnd
Člen | 16
+
0
-

Mám form pro editaci údajů uživatele. Chci jim hromadně nastavit hodnoty z DB, tedy setDefaults(), ale jak je dostanu z getIdentity() ve formě pole, které setDefaults očekává? Teď to řeším samostatně pro každý input,

<?php
...
->setDefaultValue($user->identity->firstname);
?>

rád bych to měl hromadně

<?php
$form->setDefaults($user->identity->"něco jako toArray()?");
?>

Editoval dnd (20. 7. 2012 10:36)

Majkl578
Moderator | 1364
+
0
-

Defaultně to samozřejmě nejde, můžeš ale:

  1. ručně,
  2. upravit / napsat svoji identitu, která to bude podporovat.

Aby tuto vlastnost mělo interface je nesmysl, jelikož identita nemusí mít data jako pole, identitou může být třeba i objekt Doctrine entity.

petr.pavel
Člen | 535
+
0
-

Zkoušel's iterator_to_array()?

$form->setDefaults(iterator_to_array($user->identity));
Majkl578
Moderator | 1364
+
0
-

Identita dle interface neimplementuje Iterator, ani IteratorAggregate, nicméně vlastní kreativitě nelze bránit, nicméně je trochu divné, aby např. nad entitou šlo iterovat.