2010-11-05 51 views
0

我真的堅持這一點。我要創建一個動態的多語言形式,而且做起來是這樣的:symfony問題與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())); 
    } 
} 

我想這應該做的伎倆,但輸出是這樣的:

行動::編輯 - > getform之前( ):
陣列
0 =>字符串 'seuzo_szolg_addresses'(長度= 21)
1 =>字符串 '虎'(長度= 2)
2 =>串成 'en'(長度= 2)

action :: edit-> a壓腳提升getform():
陣列
0 =>字符串 'seuzo_szolg_addresses'(長度= 21)

的擲骰子使得我什麼I18N嵌入形式消失的主要形式是initializaed剛過?任何幫助真的很感激。

+0

哦,我忘了提及它的symfony 1.2.7 – posthy 2010-11-05 14:46:55

回答

0

我仍然不知道爲什麼,這並不工作,但找到一個解決辦法:

,而不是

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

我用

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

這種方式嵌入形式在他們的位置。 希望能爲某人騰出一些時間。