ファイル ../vendor/sonata-project/doctrine-orm-admin-bundle/Sonata/DoctrineORMAdminBundle/Resources/views/CRUD/edit_orm_one_association_script.html.twig にあることに気付きました。クリックすると新しい行が作成されますリンクで、具体的には次のコードに追加します。
// the ajax post
jQuery(form).ajaxSubmit({
url: '{{ url('sonata_admin_append_form_element', {
'code': sonata_admin.admin.root.code,
'elementId': id,
'objectId': sonata_admin.admin.root.id(sonata_admin.admin.root.subject),
'uniqid': sonata_admin.admin.root.uniqid
} + sonata_admin.field_description.getOption('link_parameters', {})) }}',
type: "POST",
dataType: 'html',
data: { _xml_http_request: true },
success: function(html) {
jQuery('#field_container_{{ id }}').replaceWith(html); // replace the html
if(jQuery('input[type="file"]', form).length > 0) {
jQuery(form).attr('enctype', 'multipart/form-data');
jQuery(form).attr('encoding', 'multipart/form-data');
}
jQuery('#sonata-ba-field-container-{{ id }}').trigger('sonata.add_element');
jQuery('#field_container_{{ id }}').trigger('sonata.add_element');
}
});
return false;
};
トリガーを実装する方法を知りたい:
jQuery('#field_container_{{ id }}').trigger('sonata.add_element');
JavaScriptを追加するには!Sonata Type Collection に新しい行を作成した後。
ドキュメントには次のように書かれています: ヒント: 行が追加された (sonata-collection-item-added) または削除された (sonata-collection-item-deleted) 後に、jQuery イベントが発生します。それらにバインドして、テンプレートにインポートされたカスタム JavaScript をトリガーすることができます (例: 追加したばかりの日付フィールドにカレンダー ウィジェットを追加します)。
どんな助けでも大歓迎です!