浅谈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 相关文章推荐
PHP 反射机制实现动态代理的代码
Oct 22 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
深入PHP中慎用双等于(==)的详解
Jun 06 PHP
解析php中const与define的应用区别
Jun 18 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 PHP
php伪静态验证码不显示的解决方案
Sep 26 PHP
laravel 中某一字段自增、自减的例子
Oct 11 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 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使用Cookie实现和用户会话的方法
2015/01/21 PHP
Javascript String.replace的妙用
2009/09/08 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
在Python下进行UDP网络编程的教程
2015/04/29 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
建筑结构施工专业推荐信
2014/02/21 职场文书
社区交通安全实施方案
2014/03/22 职场文书
贷款委托书
2014/08/01 职场文书
学习考察心得体会
2014/09/04 职场文书
颐和园导游词400字
2015/01/30 职场文书
辞职信怎么写
2015/02/27 职场文书
秋菊打官司观后感
2015/06/03 职场文书
MySQL三种方式实现递归查询
2022/04/18 MySQL