laravel数据库查询返回的数据形式
版本:laravel5.4+
问题描述:laravel数据库查询返回的数据不是单纯的数组形式,而是数组与类似stdClass Object这种对象的结合体,即使在查询构造器中调用了toArray(),也无法转换成单纯的数组形式。
问题解析:
(以上图片来源于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);
});
}
}
转载请注明出处哦 http://www.cnblogs.com/meng1314-shuai/p/7232080.html
最新文章
- 分享一个php邮件库——swiftmailer
- web前端基础知识总结
- ThinkPHP 3.2.3 使用 PHPExcel 处理 Excel 表格
- asp.net 重定向的三种方法
- 操作系统开发系列—12.f.在内核中添加中断处理 ●
- Java设计模式之代理模式
- request.GetResponse 400错误处理方法
- java基础知识回顾之java Thread类学习(十二)-- 线程中断
- UVa 10622 (gcd 分解质因数) Perfect P-th Powers
- javascript模式——Prototype模式
- Javascript: Let user select an HTML element like Firebug?综述
- 三.redis 排序
- Codeforces#355
- Docker 容器启动 查看容器状态 - 四
- js五星评分
- windows系统中Dotnet core runtime 安装后,无法启动次程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll的解决方法
- Log Shipping搭建
- 深度学习的集成方法——Ensemble Methods for Deep Learning Neural Networks
- 使用curl发起https请求
- Win10 pip install gensim 报错处理
热门文章
- MQ产品比较-ActiveMQ-RocketMQ
- Codility---MaxProfit
- Spring学习(15)--- 基于Java类的配置Bean 之 @Bean &; @Scope 注解
- Vue的报错:Uncaught TypeError: Cannot assign to read only property &#39;exports&#39; of object &#39;#<;Object>;&#39;
- [0] 领域模型 VS 贫血模型
- Docker Machine 简介
- .net 4.0 中的特性总结(五):并行编程
- Java 基础 程序流程控制 (下)
- Itunes制作手机铃声,图文版
- IOS 固定定位底部input输入框,获取焦点时弹出的输入法键盘挡住input