2010-11-05 4 views
0

Je suis vraiment coincé avec ça. Je dois créer un formulaire dynamique multilangue, et de le faire comme ceci:problème symfony avec embedI18n

class TreeForm extends BaseTreeForm 
{ 
    public function configure() 
    { 
     parent::configure(); 
     [...] 
     $languages = sfConfig::get('app_language_list'); 
     $supportedlangs = $this->getObject()->getSupLangs(); 
     if (empty($supportedlangs)) 
     { 
      $supportedlangs = $languages; 
     } 

     $this->embedI18n($supportedlangs); 

     foreach ($supportedlangs as $lang) 
     { 
      $this->widgetSchema->setLabel($lang, $i18n->__($lang)); 
     } 
var_dump(array_keys($this->getEmbeddedForms())); 
    } 
} 

class treeActions extends autoTreeActions 
{ 
    public function executeEdit(sfWebRequest $request) 
    { 
     $this->tree = $this->getRoute()->getObject(); 
echo "action::edit->before getform():<br/>\n"; 
     $this->form = $this->configuration->getForm($this->tree); 
echo "action::edit->after getform():<br/>\n"; 
var_dump(array_keys($this->form->getEmbeddedForms())); 
    } 
} 

Je pensais que cela devrait faire l'affaire, mais la sortie est comme ceci:

l'action

:: edit-> avant GetForm ():
réseau
0 => string 'seuzo_szolg_addresses' (longueur = 21)
1 => string 'hu' (longueur = 2)
2 => string 'en' (longueur = 2)

action :: modifier-> a GetForm près avoir():
tableau
0 => string '' seuzo_szolg_addresses (longueur = 21)

Qu'est-ce que la merde fait mes i18n formes intégrées disparaissent juste après la principale forme est initializaed? Toute aide vraiment appréciée.

+0

oh, j'ai oublié de mentionner c'est symfony 1.2.7 – posthy

Répondre

0

Je ne sais toujours pas pourquoi cela ne fonctionne pas, mais trouvé une solution de contournement:

au lieu de

$this->form = $this->configuration->getForm($this->tree); 

je

$this->form = new TreeForm($this->tree); 

De cette façon, les formes sont intégrées à leur place. Espérons que nous aurons du temps pour quelqu'un.