欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-14 18:18:11
首先数据库基本查询是没有问题的 返回结果为: 但是当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方法数组参数起别名时遇到的问题

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