今日小編在進修tp5模子操作的過程中,碰到了一個錯誤
在這里記實一下,若是大師也碰到了這樣的問題,可以按照小編的提醒進行bug調試。
代碼:
$user = new User;
$where = function($query){
$query->field(['phone'=>"手機號"])->where('id',1);
};
dump($user -> find($where));
返回錯誤信息:不撐持的數據表達式:手機號
按照提醒,錯誤的問題是發生在Mysql.php文件的第113行。
那么我們就要找出文件所對應的代碼
經由過程查抄發現,是因為正則表達式的問題。
\w只匹配數字字母下劃線,匹配不到漢字。
所以我們要在正則表達式上加上漢字匹配
if ($strict && !preg_match('/^[\w\.\*\x00-\xff]+$/', $key)) {
throw new Exception('not support data:' . $key);
}
這樣程序就可以正常運行了
或者利用別的一種起別號方式
$user = new User;
$where = function($query){
$query->field('phone as 手機號')->where('id',1);
};
dump($user -> find($where)->getData());
成果與上一類別名體例一樣
tp框架應用Trace默認是封閉狀況
我們點竄
'app_trace' => true,
在執行代碼的時辰右下角會有一個圖標
點擊右下角圖標
我們就能查看應用執行的SQL、錯誤信息等東西
便利我們進行項目調試
END0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!