0

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しかし、これは役に立ちませんでした。ありがとう。

4

0 に答える 0