在使用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開發的話,最好用數組的方式去組合統一的查詢條件。