浅谈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 相关文章推荐
Extended CHM PHP 语法手册之 DIY
Oct 09 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 PHP
Zend Framework框架路由机制代码分析
Mar 22 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 30 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 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 include任意文件或URL介绍
2014/04/29 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Web服务器框架 Tornado简介
2014/07/16 Python
python中的二维列表实例详解
2018/06/19 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Python中base64与xml取值结合问题
2019/12/22 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
基于Python测试程序是否有错误
2020/05/16 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
学校采购员岗位职责
2014/01/02 职场文书
先进党支部事迹材料
2014/01/13 职场文书
三年级评语大全
2014/04/23 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
安全伴我行主题班会
2015/08/13 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python
Window server中安装Redis的超详细教程
2021/11/17 Redis