首頁  >  問答  >  主體

不支援的資料表達式:姓名

依照影片的方法:-> field(['name' => "姓名", 'salary'] )

會提示不支援的資料表達式,如果將「姓名」改成英文或使用「field('name as 姓名, salary')」就沒有問題。


請問一下是什麼原因呢?


星星蓝蓝星星蓝蓝2115 天前1745

全部回覆(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
  • 取消回覆