浅谈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 相关文章推荐
JAVA/JSP学习系列之六
Oct 09 PHP
PHP获取类中常量,属性,及方法列表的方法
Apr 09 PHP
php 求质素(素数) 的实现代码
Apr 12 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
理解php依赖注入和控制反转
May 11 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PDO::setAttribute讲解
Jan 29 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 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
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
php开发文档 会员收费1期
2012/08/14 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
一个超级简单的python web程序
2014/09/11 Python
Python写的一个简单监控系统
2015/06/19 Python
python3抓取中文网页的方法
2015/07/28 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
python3 enum模块的应用实例详解
2019/08/12 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
毕业生找工作推荐信
2013/11/21 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
2014年国培研修感言
2014/03/09 职场文书
优秀员工评优方案
2014/06/13 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
部队2014年终工作总结
2014/11/27 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
python实现局部图像放大
2021/11/17 Python