我有下表:
Events:
- Date (date)
- EventType (varchar)
- Value (varchar)
EventType 可以有几个值,即签入、结账、房租、杂项等。我想制作一个表单,根据“中选择的类型”将“值”的字段类型更改为文本、日期或实体事件类型”。我试图找到一些解决方案,但没有成功。我发现的唯一一件事是我必须使用 queryBuilder 但不明白如何在这里应用它。
我有下表:
Events:
- Date (date)
- EventType (varchar)
- Value (varchar)
EventType 可以有几个值,即签入、结账、房租、杂项等。我想制作一个表单,根据“中选择的类型”将“值”的字段类型更改为文本、日期或实体事件类型”。我试图找到一些解决方案,但没有成功。我发现的唯一一件事是我必须使用 queryBuilder 但不明白如何在这里应用它。
您应该使用事件订阅者,通过将事件订阅者添加到您的表单,您可以将字段的创建委托给该订阅者。在您的事件订阅者中,您可以检查您的“EventType”并添加适当的“Value”字段。
我找到了解决方案。我添加EventSubscriber
到我的表单并发送带有用户选择的类型的 ajax 请求,让订阅者决定添加什么样的字段。
$subscriber = new EventSubscriber($builder->getFormFactory());
$builder->addEventSubscriber($subscriber);
$builder->add('eventType', 'entity', array('class' => 'Bundle:EventType', 'property' => 'eventName', 'required' => true));
感谢 Ahmed Siouani。