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 回答