Symfony2使用数据库参数创建dynamc链接

Symfony2 Creating a dynamc link with database parameters

本文关键字:创建 dynamc 链接 参数 数据库 Symfony2      更新时间:2023-09-26

我通过$.ajax从数据库中获取数据。但是我如何创建链接呢?

这是我的ajax调用,结果有效:

var $resultDepartment = $( '#resultDepartment' );
        $.ajax({
            type: "post",
            url: url2,
            data: "locationid=" + locationid,
            dataType: "json",
            success: function (resp) {
                for (var i = 0; i < resp.length; i++) {
                    var $link = "{{ path('_niederlassung', {filiale: resp[i].bezeichnung}) }}";
                    console.log($link);
                    $resultDepartment.html("Your Department:<br><br>" + resp[i].bezeichnung) + "<br><br><a href='" + $link + "'>weiter zur Filiale</a>";
                }
            }
        });

当我将{{path('_niederlassung',{filiale:'exampledepartment'})}}放入树枝中时,它将变得完美,也可以完美工作。

在这里我给你看路线:

_niederlassung:
path:  /niederlassung/{filiale}
defaults: { _controller:  MbsNiederlassungBundle:Default:index, filiale: "all" }

您有3个解决方案:

1)通过操作返回路线

//动作:

return new Response(json_encode(array(
    // here what you want ...
    'link' => $this->generateUrl('_niederlassung', array('filiale' => resp->getBezeichnung())),
)));

//JS回调

for (var i = 0; i < resp.length; i++) {
    var $link = resp[i].link // Get the link with ease
}

2)使用FOSJsRoutingBundle

在JS中生成URL的捆绑包:https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

3)用JS替换Url(有效HTML)

制作一个包含一些参数的div(或另一个html元素)以传递给JS:

<div id="js_config"
    data-filiale-url-prototype="{{ path('_niederlassung', {filiale: 'prototype'}) }}"
>
</div>

//您的JS回调:

// ...
var urlPrototype = $('#js_config').attr('data-filiale-url-prototype');
for (var i = 0; i < resp.length; i++) {
    // ...
    var $link = urlPrototype.replace(/prototype/g, resp[i].bezeichnung);
}

这是Sf2食谱中使用的一种技术(在页面中用ctrl+f搜索"replace")。

选择您最喜欢的解决方案!