DB には、次のような 2 つのテーブルがあります。
USER
================
ID, Name, idType
================
1 , Alex, 2
2 , Paul, 3
...
TYPES
=========
ID, Type
=========
1 , FirstType
2 , SecondType
3 , ThirdType
...
USER テーブルのフィールド「idType」は、TYPES テーブルの「ID」フィールドで参照されます。
Symfony2 を使用して、Web フォームを使用して USER テーブルに新しいレコードを作成する必要があるため、フィールド 'idType' を設定するドロップダウン ボックスが必要です。私の src/Acme/MyBundle/Form/Type/UserType.php では、TYPES テーブルからレコードを抽出するドロップダウン ボックスを作成して表示できます。
$builder->add('idType', 'entity', array('class' => 'AcmeMyBundle:Types','property' => 'type',));
とにかく明らかに、リストに「タイプ」フィールド(人間が読める文字列)を表示する必要があるため、この値をデータベースに挿入することはできませんが、参照された「ID」フィールド(整数)をDBに挿入する必要があります.
静的にこの操作を次のように実行します。
$builder->add('idType', 'choice', array('choices' => array('1' => 'FirstType', '2' => 'SecondType', '3' => 'ThirdType'), 'required' => false));
この操作は可能ですか?ドロップダウン ボックスを使用して、DB からエンティティを抽出し、このエンティティのフィールドを表示する必要がありますが、別の参照フィールドを挿入することを選択します。ドキュメントを読みました: http://symfony.com/doc/current/reference/forms/types/entity.htmlしかし、これは役に立ちませんでした。ありがとう。