【问题标题】:Symfony 1.4 doctrine admin generator display i18n form fieldsSymfony 1.4 学说管理生成器显示 i18n 表单字段
【发布时间】:2011-05-26 17:36:55
【问题描述】:

我的问题是我使用管理生成器的模型具有一些我需要在 generator.yml 定义中具有的额外虚拟属性:

config:
  form:
    display: [name, design_by, description, _images, add_image, _videos, add_video]

但是“描述”属性在 i18n 模式的学说模型中,它不再存在于核心模型对象中 - 移动到 i18n 模型中。 所以我得到逻辑错误'小部件“描述”不存在'。

我尝试了类似的东西:

config:
  form:
    display: [description_i18n]

但没有找到解决办法。

当我将表单显示定义剪切为默认值时,表单开始工作,但它错过了我的额外字段_images、add_image、_videos、add_video,所以我需要在那里定义。

Google 也没有帮助...

有人知道如何将 i18n 小部件定义到 generator.yml 中吗? 谢了!

【问题讨论】:

    标签: internationalization symfony1 doctrine symfony-1.4 admin-generator


    【解决方案1】:

    我遇到了同样的问题。

    深入研究代码,我看到 i18n 小部件被分组到数组中,其中键是文化名称。

    所以我尝试将它们设置到我的 generator.yml 中:

    form:
      display:
        'Name / Description (with translations)': [en, es, fr, it]
    

    成功了!!!

    【讨论】:

    • 我不得不将我的其他字段拆分为单独的块,例如“main”:[name,design_by],您的 yml 将其放在下面,然后将“data”与其余部分一起阻止,但这确实有效。跨度>
    【解决方案2】:

    我以前做过这个,我不确定这是否是您正在寻找的答案,但是为了让 Symfony 在管理生成器中显示 i18n 字段,您需要在项目/lib 中的每个 Form 类中添加一行文件夹。

    例如,如果您在以下位置有一个 Form 类:<myproject>/lib/form/doctrine/MyForm.class.php

    像这样将这个添加到配置方法中:

      public function configure()
      {
        parent::configure();
    
        // Add this line.
        $this->embedI18n(array('en', 'de'));
        ...
      }
    

    将 en 和 de 更改为您设置的语言。您需要为您拥有的每个表单对象执行此操作。

    【讨论】:

    • 再次阅读我的问题的最后一行
    • 我绑好了。而且我从未听说过 i18n 小部件。祝你好运。
    • 顺便说一句。通过让默认 (~) generator.yml 设置和为表单类中的特殊属性设置额外小部件解决了我的问题,但这不是解决这个问题的方法,所以我让它打开。无论如何,谢谢你的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多