浅谈laravel数据库查询返回的数据形式


Posted in PHP onOctober 21, 2019

版本:laravel5.4+

问题描述:laravel数据库查询返回的数据不是单纯的数组形式,而是数组与类似stdClass Object这种对象的结合体,即使在查询构造器中调用了toArray(),也无法转换成单纯的数组形式。

问题解析:

浅谈laravel数据库查询返回的数据形式

(以上图片来源于laravel学院5.3版本到5.4版本的升级手册)

如上图所示:Laravel不再支持在配置文件中定制PDO的“fetch mode”,取而代之,总是使用PDO::FETCH_OBJ,如果你仍然想要为应用定制fetch模式,需要监听新的Illuminate\Database\Events\StatementPrepared事件。

问题解决:

打开app/Providers/EventServiceProvier.php,如文档上所说,我们要先引入Illuminate\Database\Events\StatementPrepared类

use Illuminate\Database\Events\StatementPrepared;

然后在boot方法中加入如图中给出的样例代码:

Event::listen(StatementPrepared::class, function ($event) {
    $event->statement->setFetchMode(\PDO::FETCH_ASSOC); //这里我们使用PDO::FETCH_ASSOC
});

这样我们就大功告成啦,现在你的laravel数据库查询返回的数据就是单纯的数组形式。

最后附上app/Providers/EventServiceProvier.php的整体代码:

<?php
namespace App\Providers;

use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Database\Events\StatementPrepared;

class EventServiceProvider extends ServiceProvider{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'App\Events\Event' => [
'App\Listeners\EventListener',
],
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
parent::boot();

//
Event::listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(\PDO::FETCH_ASSOC);
});
}
}

以上这篇浅谈laravel数据库查询返回的数据形式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
基于OpenCV的PHP图像人脸识别技术
Oct 11 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
PHP使用ob_start生成html页面的方法
Nov 07 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
为你总结一些php系统类函数
Oct 21 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
在laravel中实现将查询的对象转换为多维数组的函数
Oct 21 #PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 #PHP
laravel orm 关联条件查询代码
Oct 21 #PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 #PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 #PHP
Laravel ORM 数据model操作教程
Oct 21 #PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 #PHP
You might like
第二节--PHP5 的对象模型
2006/11/16 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
javascript一些不错的函数脚本代码
2008/09/10 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
python 开发的三种运行模式详细介绍
2017/01/18 Python
Python3匿名函数用法示例
2018/07/25 Python
django如何连接已存在数据的数据库
2018/08/14 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python数据预处理方式 :数据降维
2020/02/24 Python
Django权限设置及验证方式
2020/05/13 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
python中pyqtgraph知识点总结
2021/01/26 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
便利店投资的创业计划书
2014/01/12 职场文书
学生鉴定评语大全
2014/05/05 职场文书
党员目标管理责任书
2014/07/25 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
研究生简历自我评
2015/03/11 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
反邪教教育心得体会
2016/01/15 职场文书