浅谈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程序员工具
May 26 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
php操作xml
Oct 27 PHP
php实现图片缩放功能类
Dec 18 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
php获取'/'传参的值简单方法
Jul 13 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
laravel Model 执行事务的实现
Oct 10 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语法基础
2016/01/01 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
发现的以前不知道的函数
2006/09/19 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
python executemany的使用及注意事项
2017/03/13 Python
python递归实现快速排序
2018/08/18 Python
ipython和python区别详解
2019/06/26 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
Python调用C语言程序方法解析
2020/07/07 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
质检员的岗位职责
2013/11/15 职场文书
力学专业毕业生自荐信
2013/11/17 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
关于保护环境的建议书
2014/05/13 职场文书
建筑安全标语
2014/06/07 职场文书
销售助理岗位职责
2015/02/11 职场文书
简历中自我评价范文
2015/03/11 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android