1

次の表があります。

Events:
 - Date (date)
 - EventType (varchar)
 - Value (varchar)

EventType には、チェックイン、チェックアウト、部屋の家賃、その他など、いくつかの値を設定できます。「値」のフィールド タイプを、「」で選択したタイプに基づいてテキスト、日付、またはエンティティに変更するフォームを作成したいと考えていますイベントタイプ"。いくつかの解決策を見つけようとしましたが、成功しませんでした。私が見つけた唯一のことは、queryBuilder を使用する必要があることですが、ここでそれを適用する方法を理解できません。

4

2 に答える 2

13

フォームにイベント サブスクライバーを追加して、イベント サブスクライバーを使用する必要があります。フィールドの作成をそのサブスクライバーに委任します。イベント サブスクライバー内で、"EventType" を確認し、適切な "Value" フィールドを追加できます。

于 2012-06-07T13:09:06.943 に答える
1

私は解決策を見つけました。フォームに追加EventSubscriberし、サブスクライバーが追加するフィールドの種類を決定できるように、ユーザーが選択したタイプの ajax リクエストを送信します。

$subscriber = new EventSubscriber($builder->getFormFactory());
$builder->addEventSubscriber($subscriber);

$builder->add('eventType', 'entity', array('class' => 'Bundle:EventType', 'property' => 'eventName', 'required' => true));

Ahmed Siouani に感謝します。

于 2012-06-07T13:31:44.700 に答える