搜索

首页  >  问答  >  正文

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

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

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


请问一下是什么原因呢?


星星蓝蓝星星蓝蓝2271 天前1849

全部回复(3)我来回复

  • 天蓬老师

    天蓬老师2018-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
  • 取消回复