登陆

不支持的数据表达式:姓名

按照视频的方法:-> field(['name' => "姓名", 'salary'] )

会提示不支持的数据表达式,如果将“姓名”改成英文或者使用“field('name as 姓名, salary')”就没有问题。


请问一下是什么原因呢?


# PHP
星星蓝蓝 星星蓝蓝 78 天前 136 次浏览

全部回复(3)我要回复

  • Peter-Zhu

    Peter-Zhu2018-12-07 13:49:57

    可以用字符串直接设置别名

    回复
    0
  • 星星蓝蓝

    恩,字符串没有问题,就是这个数组模式设置有问题。看了一下好像是框架源码的问题,正则表达式只过滤了英文字符。后面把框架里library/think/db/build/Mysql.php 中的这行: if ($strict && !preg_match('/^[\w\.\*]+$/', $key)) { 改成了: if ($strict && !preg_match('/^[\x{4e00}-\x{9fa5}\w\.\*]+$/u', $key)) { 就可以了。

    星星蓝蓝 · 2018-12-07 16:16:44
    星星蓝蓝

    但是看你视频教程里是直接用数组就没有问题,不知道你是怎么设置的:)

    星星蓝蓝 · 2018-12-07 16:17:50
  • 取消 回复 发送