模板中不同的url_model模式下传参给后端 ? &符混乱的问题

我们在模板中使用标签{{url 'Log/save'}} 生成一个地址 在url_model=2时 生成的地址为 /Log/save.html,假定我们要用js传参id=1给后端,这时模板写法为

var good = {id:1,name:'商品1'}
$.get('{{url 'Log/save'}}' + '?id='+good.id,         function() {

});

此时生成的静态代码为

var good = {id:1,name:'商品1'}
$.get('/Log/save.html' + '?id='+good.id, function() {

})

后端可正常接收参数 但是若某开发人员本地的环境只支持url_model=3则生成的静态代码为

var good = {id:1,name:'商品1'}
$.get('/index.php?r=/Log/save' + '?id='+good.id, function() {

})

因为已经有?r=这边的?号所以后面的?id=无效,此时后端无法正常接收参数,为了兼容CmlPHP中加了{{urldeper}}这个模板标签 此时模板写法只要改为

var good = {id:1,name:'商品1'}
$.get('{{url 'Log/save'}}' + '{{urldeper}}id='+good.id, function() {

})

则在url_model=2的模式下生成的地址为

var good = {id:1,name:'商品1'}
$.get('/Log/save.html' + '?id='+good.id, function() {

})

则在url_model=3的模式下生成的地址为

var good = {id:1,name:'商品1'}
$.get('/index.php?r=/Log/save' + '&id='+good.id, function() {

})

后端都可正常接收到参数

results matching ""

    No results matching ""