2

私の問題は、generator.yml 定義に必要ないくつかの追加の仮想属性を持つモデルに管理ジェネレーターを使用していることです。

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

しかし、"description" 属性はドクトリンモデルの i18n モードにあり、コアモデルオブジェクトにはもう存在しません - i18n モデルに移動しました。そのため、「ウィジェット「説明」が存在しません」という論理エラーが発生します。

私は次のようなことを試しました:

config:
  form:
    display: [description_i18n]

しかし、解決策が見つかりませんでした。

フォーム表示定義をデフォルトにカットすると、フォームが機能し始めますが、余分なフィールド _images、add_image、_videos、add_video が欠落しているため、そこに定義が必要です。

Googleも役に立たなかった...

i18n ウィジェットを generator.yml に定義する方法を知っている人はいますか? THX!

4

2 に答える 2

0

私も同じ問題を抱えていました。

コードを詳しく調べてみると、i18n ウィジェットがキーがカルチャ名である配列にグループ化されていることがわかりました。

だから私はそれらを私のgenerator.ymlに設定しようとしました:

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

そして大成功!!!

于 2011-05-22T11:22:14.150 に答える
0

私は以前にこれを行ったことがありますが、これがあなたが探している答えであるかどうかはわかりませんが、Symfony が admin ジェネレーターに i18n フィールドを表示するには、project/lib フォルダーの各 Form クラスに行を追加する必要があります。

たとえば、次の場所に Form クラスがあるとします。<myproject>/lib/form/doctrine/MyForm.class.php

これを次のように configure メソッドに追加します。

  public function configure()
  {
    parent::configure();

    // Add this line.
    $this->embedI18n(array('en', 'de'));
    ...
  }

en と de を設定した言語に変更します。持っているすべてのフォーム オブジェクトに対してこれを行う必要があります。

于 2010-12-20T15:06:43.723 に答える