ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题

首先数据库基本查询是没有问题的

<?php

namespace app\index\controller;
use think\Db; class Demo5
{
//1.单条查询
public function find()
{
$res = Db::table('customers')
->field('Name,CustomerID')
->where('CustomerID', '=', 1)
->find();
dump(is_null($res) ? '没有找到' : $res);
} }

返回结果为:

ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题

但是当field参数为数组,需要给字段起别名时:

<?php

namespace app\index\controller;
use think\Db; class Demo5
{
//1.单条查询
public function find()
{
$res = Db::table('customers')
// ->field('Name,CustomerID')
->field(['CustomerID'=>'顾客编号'])
->where('CustomerID', '=', 1)
->find();
dump(is_null($res) ? '没有找到' : $res);
} }

却报了以下错误:

ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题

(修改字段为中文时才会出现该错误,小白看不懂报错...)查询手册发现,还有另外一种起别名的方法:

<?php

namespace app\index\controller;
use think\Db; class Demo5
{
//1.单条查询
public function find()
{
$res = Db::table('customers')
// ->field('Name,CustomerID')
// ->field(['CustomerID'=>'顾客编号'])
->field('CustomerID as 顾客编号')
->where('CustomerID', '=', 1)
->find();
dump(is_null($res) ? '没有找到' : $res);
} }

结果成功运行:

ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题

不禁好奇:是不支持数组参数起别名了吗?还是说我哪里配置的不正确?

上一篇:[Everyday Mathematics]20150130


下一篇:已开源!支付宝 Android 专项测试的“秘密武器”