Для одного из моих объектов мне нужно создать динамический рендеринг формы ... Но я не могу понять, как это сделать в Sonata Admin. Например, когда я создаю объект, у меня есть тип поля. В этом поле я выбираю тип, которым должен обладать мой объект. Теперь, когда я выбираю тип, я хочу создать поле, основанное на типе. Например, если я выбираю тип «Карусель», я хочу показать поле, которое выбирает всю галерею объектов объекта. Если я выберем тип «Продукт», я хочу отобразить поле со всеми продуктами, чтобы выбрать из ... Как я могу это узнать?Symfony2 Sonata admin динамически меняет входные данные на основе выбранного значения
Сейчас у меня есть это:
/**
* @param FormMapper $formMapper
*/
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('Module', array(
'class' => 'col-md-6'
))
->add('position')
->add('type', null, array(
'attr' => array('class' => 'module_type')
))
->add('items', 'entity', array(
'class' => 'ApplicationSonataMediaBundle:Gallery'
))
->end()
;
}
И я перекрываться шаблон редактирования:
{% extends 'SonataAdminBundle:CRUD:edit.html.twig' %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
$(document).ready(function() {
$(".module_type").change(function() {
});
});
</script>
{% endblock %}
Как вы можете видеть галерея зашиты сейчас ..
Я не могу понять как это сделать сейчас ... Как сказать, что если выбранное значение - это, используйте этот объект в поле ... Проблема в том, что форма формы, отображаемая в Sonata, очень сложна ... Я ее не понимаю.
Возможно, я должен использовать ajax? Но опять же, когда я отправляю значение и получаю ответ, как добавить поле без обновления?
Любая помощь приветствуется.