我有下表:
Events:
- Date (date)
- EventType (varchar)
- Value (varchar)
EventType可以有一些值,例如checkin,checkout,roomrent,misc等。我想制作一个会改变字段类型" Value"基于" EventType"中所选类型的文本,日期或实体。我试图找到一些解决方案,但没有成功。 The only thing I found我必须使用queryBuilder,但实际上可以捕捉到如何操作。
答案 0 :(得分:13)
您应该使用事件订阅者,通过向您的表单添加事件订阅者,您将字段的创建委派给该订阅者。 在您的活动订阅者中,您可以检查“EventType”并添加相应的“值”字段。
答案 1 :(得分: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。