Thinkphp5 中字段别名是汉字报错的解决办法

Thinkphp5 中字段别名是汉字 , 提示错误:不支持的数据表达式

Thinkphp5 中字段别名是汉字报错的解决办法

文章插图

需要这些哦
thinkphp5框架
浏览器
编纂器
方式/
1今日小编在进修tp5模子操作的过程中 , 碰到了一个错误
在这里记实一下 , 若是大师也碰到了这样的问题 , 可以按照小编的提醒进行bug调试 。

2代码:

        $user = new User;
        $where = function($query){
            $query->field(['phone'=>"手机号"])->where('id',1);
        };
        dump($user -> find($where));


返回错误信息:不撑持的数据表达式:手机号
Thinkphp5 中字段别名是汉字报错的解决办法

文章插图

3按照提醒 , 错误的问题是发生在Mysql.php文件的第113行 。
那么我们就要找出文件所对应的代码

Thinkphp5 中字段别名是汉字报错的解决办法

文章插图

4经由过程查抄发现 , 是因为正则表达式的问题 。
\w只匹配数字字母下划线 , 匹配不到汉字 。

所以我们要在正则表达式上加上汉字匹配


if ($strict && !preg_match('/^[\w\.\*\x00-\xff]+$/', $key)) {
        throw new Exception('not support data:' . $key);
}


这样程序就可以正常运行了

Thinkphp5 中字段别名是汉字报错的解决办法

文章插图

5或者利用别的一种起别号方式


        $user = new User;
        $where = function($query){
            $query->field('phone as 手机号')->where('id',1);
        };
        dump($user -> find($where)->getData());


成果与上一类别名体例一样


6tp框架应用Trace默认是封闭状况
我们点窜
'app_trace'  => true,


在执行代码的时辰右下角会有一个图标

Thinkphp5 中字段别名是汉字报错的解决办法

文章插图

7点击右下角图标
我们就能查看应用执行的SQL、错误信息等东西
【Thinkphp5 中字段别名是汉字报错的解决办法】便利我们进行项目调试

Thinkphp5 中字段别名是汉字报错的解决办法

文章插图

注重事项处处是bug , 一个bug一个坑 。

以上内容就是Thinkphp5 中字段别名是汉字报错的解决办法的内容啦 , 希望对你有所帮助哦!

    推荐阅读