Symfony 1.4 Doctrine Admin Generator Display I18Nフォームフィールド
-
11-10-2019 - |
質問
私の問題は、IAMがGenerator.yml定義で必要ないくつかの追加の仮想属性を備えたモデルに管理ジェネレーターを使用していることです。
config:
form:
display: [name, design_by, description, _images, add_image, _videos, add_video]
ただし、「説明」属性は、Core Modelオブジェクトに存在することはありません - i18nモデルに移動しなくなりました。したがって、IAMは論理的なエラー「ウィジェット」を取得します「説明「存在しません」。
私は次のように試してみました:
config:
form:
display: [description_i18n]
しかし、解決策は見つかりませんでした。
フォームディスプレイの定義をデフォルトにカットすると、フォームは機能し始めますが、余分なフィールド_images、add_image、_videos、add_videoを見逃しているため、定義が必要です。
グーグルも助けません...
i18nウィジェットをgenerator.ymlに定義する方法を知っている人はいますか? THX!
解決
同じ問題がありました。
コードに飛び込んで、i18nウィジェットがキーが文化名である配列にグループ化されていることがわかりました。
それで、私はそれらをgenerator.ymlに設定しようとしました:
form:
display:
'Name / Description (with translations)': [en, es, fr, it]
そして成功!!!
他のヒント
私はこれを以前にやったことがありますが、これがあなたが探している答えであるかどうかはわかりませんが、Symfonyが管理ジェネレーターにi18Nフィールドを表示するためには、プロジェクト/libフォルダーの各フォームクラスに行を追加する必要があります。
たとえば、フォームクラスがある場合: <myproject>/lib/form/doctrine/MyForm.class.php
これを構成メソッドに追加します。
public function configure()
{
parent::configure();
// Add this line.
$this->embedI18n(array('en', 'de'));
...
}
設定した言語にenとdeを変更します。あなたが持っているすべてのフォームオブジェクトに対してこれを行う必要があります。