在Sonata / Symfony2中使用AJAX调用而不是路由

时间:2014-01-06 14:48:02

标签: ajax symfony sonata-admin

我正在使用Sonata来满足项目中的特定需求。

实际上,我创建了一个只有一个页面的JS接口(带有ExtJS),每个按钮只调用一个AJAX请求来显示内容。所以页面永远不会重新加载。该URL类似于www.blob.com/blob

按钮应该通过AJAX调用来调用Sonata管理界面。 它工作正常,管理界面显示在ExtJS容器中。

但是,当我点击管理界面内的按钮(如添加按钮)时,它会将我重定向到Sonata管理员URL,如www.blob.com/admin/dashboard/list/add等。< / p>

那么,我希望Sonata Admin Interface中的所有按钮都使用AJAX而不是刷新页面。

我发现这个答案How to use Ajax within Sonata Admin forms?非常好。但我几乎无法理解它,它似乎只适合特定的需要。

有没有人知道一个可以“轻松”处理的解决方案。 因为目前我看到的唯一解决方案是编辑我的Bundle的所有AdminClass和Controllers(~50)。

谢谢,希望我尽可能清楚。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用Javascript在链接(<a>标签)上的所有点击事件与类sonata-ba-action进行处理,以便在AJAX中进行处理。

类似的东西:

jQuery('a.sonata-ba-action').on('click', function (e) {
    var url = jQuery(this).attr('href');

    jQuery.get(url, function (data) {
        jQuery('#yourContainer').html(data);
    });

    return false;
});