【问题标题】:symfony problem with embedI18nembedI18n 的 symfony 问题
【发布时间】:2010-11-05 14:26:30
【问题描述】:

我真的很坚持这个。我必须创建一个动态的多语言表单,并且这样做:

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()));
    }
}

我认为这应该可以解决问题,但输出是这样的:

action::edit->getform() 之前:
数组
0 => 字符串“seuzo_szolg_addresses”(长度=21)
1 => 字符串 'hu' (长度=2)
2 => 字符串'en'(长度=2)

action::edit->getform() 之后:
数组
0 => 字符串“seuzo_szolg_addresses”(长度=21)

是什么让我的 i18n 嵌入式表单在主表单初始化后消失了?非常感谢任何帮助。

【问题讨论】:

  • 哦,我忘了说是symfony 1.2.7

标签: php internationalization symfony1


【解决方案1】:

我仍然不知道为什么这不起作用,但找到了解决方法:

而不是

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

我用过

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

这样嵌入的表单就位。 希望能抽出一些时间给某人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 2011-06-07
    • 2011-05-20
    • 2011-03-17
    相关资源
    最近更新 更多