2010-11-05 67 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); 

这种方式嵌入形式在他们的位置。 希望能为某人腾出一些时间。