Laravel的数据库查询中根据条件查询一条数据并返回数组

前言

在使用webman进行mysql数据库操作的时候,有一个需求是从管理员列表中查询一行数据。

由于webman的数据库操作使用的是Laravel的构造器方法,因此开发的时候要查询Laravel开发文档-构造器方法

开发过程中,遇到一个问题,就是构造器返回的是一个复杂的对象,并不是常见的的数组。
查询后如何返回数组呢?

实现

webman/config/database.php中配置mysql数据库的基本信息。

新建一个数据库操作的Model:

// webman/app/model/Administer.php

<?php
/*
 * @Description:  管理员列表
 * @Author: feiYun
 * @Email: 283054503@qq.com
 * @LastEditTime: 2023-11-27 17:43:32
 */

namespace app\model;

use support\Model;

class Administer extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'admin';   // 数据库表名

    /**
     * The primary key associated with the table.
     *
     * @var string
     */
    protected $primaryKey = 'id';

    /**
     * Indicates if the model should be timestamped.
     *
     * @var bool
     */
    public $timestamps = false;

}

接下来,就可以在其他类里操作这个Model了。

有两种方法可以在Redis队列插件里进行数据库查询,并且返回数组。

查询方法1

根据用户名查询一条数据。
此方法不需要数据库Model类。

// webman/app/queue/redis/fast/Task.php

$user_info = Db::table('admin')->where('username', $username)->first();   // 返回对象

# 这里有个坑:laeael的Db方法返回的内容是一个对象,而phalapi的NotORM方法返回的是数组。需要判断数据类型并转换
if (is_object($user_info)) {
    $user_info = get_object_vars($user_info);   // 对象转数组
} else if (is_array($user_info)) {
    # 无需转换
} else {
    # 不支持的数据(请检查数据类型)
}

查询方法2

默认情况下,查询构建器返回的结果集是一个对象数组。
如果想将它们转换成普通的 PHP 数组,可以使用 toArray 方法:

// webman/app/queue/redis/fast/Task.php

use app\model\Administer;

$model = new Administer();
$user_info = $model->where('username', $username)->first()->toArray();

参考资料

laravel怎么查询数据库并将结果转为数组

1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » Laravel的数据库查询中根据条件查询一条数据并返回数组

企业级大数据智能营销管理系统

了解详情