模板中不同的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() {
})
后端都可正常接收到参数