今日小编在进修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、错误信息等东西
便利我们进行项目调试
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!