在使用tp5.0集成H-ui的过程中,走过了一些的弯路。毕竟是人写的框架,多少会有一些的BUG。这里把自己遇到的问题列举出来。
1、使用ajax访问后台,后台使用dump调试,报错不精准
我这里先上一个例子。
页面代码:
$.ajax({
dataType : 'json',
type : 'POST',
url : '__URL__/notice/test',
async : true,
data : {
"aoData" : 'aaaa'//测试数据
},
success : function(data){
alert(data);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status + "," + textStatus);
}
});
tp5后台代码:
public function test(Request $request){
$aoData = $request->param('aoData');
dump($aoData);
}
页面结果:
D:\tools\wamp64\www\thinkphp5\thinkphp\library\think\Debug.php:165:null
这里面明明是我们明显的从页面传值{"aoData":'aaaa'}到后台,可后台的dump却为空。但通过将参数返回到页面的操作,又能返回值aaaa,所以,在使用ajax时,还是用最传统的打印方式可靠一些。
2、查询表达式的拼接问题(这个问题只是在5.0中有,5.1已经解决了)
如以下代码:
$sql = Db::name('notice')->where('delete_flg','0')->where('content','like','%d%');
$c = $sql->count();
$r = $sql->select();
我们拼接好了sql的查询条件,然后以这个为基础,去查询总数和结果集,发现,只有第一条有条件筛选的效果,而第二条没有。后来作者回答说是:如果是5.0的话 查询之后 你的所有的查询条件就清空了。也就是说,每次执行一条查询语句,都要重新组合查询条件。所以,这里面建议大家如果用5.0开发的话,最好用数组的方式去组合统一的查询条件。