首页 >社区问答列表 >不支持的数据表达式:姓名

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

赞助会员专享特权

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

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


请问一下是什么原因呢?


  • Peter-Zhu
  • Peter-Zhu     2018-12-07 13:49:57 1楼

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

    +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
    回复