解决Laravel5.5下的toArray问题

作为一个有轻度强迫症且受ThinkPHP影响较深的PHP码农,总觉得Laravel5.5的DB::xxoo->get()->toArray()之后竟然还没得到我想要的ThinkPHP中的select()出来的数组,于是决定做一下修改。

PS:出于尽量不影响原有框架的考虑,我是新建了一个方法叫getList来暂代toArray那不知所谓的返回结果,在没有找到更好的解决办法之前,暂时这么用着,总体感觉,get()->getList()仍觉得略丑。。。。

具体修改如下:

1、在/vendor/laravel/framework/src/Illuminate/Support/Collection.php的toAarray方法下,增加一个getList方法

public function getList(){
  return array_map('get_object_vars', $this->items);
 }

2、然后就可以这样来查列表了

$goods_category_list=DB::table('lara_goods_category')->select('goods_category_id','goods_category_name','goods_category_shortname')->where('goods_category_show', '=', 1)->offset(0)->limit(5)->orderBy('goods_category_sort', 'asc')->get()->getList();

3、返回的正是我所想要的数组,如下图:

以上这篇解决Laravel5.5下的toArray问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决在Laravel 中处理OPTIONS请求的问题

    前面已经说过可以通过中间件来处理OPTIONS请求,近日寻得一个简单的办法. 在路由文件中定义一个路由,通过正则来匹配相应的路由. Route::options('/{all}', function(Request $request) { $origin = $request->header('ORIGIN', '*'); header("Access-Control-Allow-Origin: $origin"); header("Access-Control-All

  • 解决laravel资源加载路径设置的问题

    原先我设置的资源路径是这样的: <link rel="stylesheet" href="css/app.css" rel="external nofollow" > 然后我在路由中调用了别的控制器,所以访问的url格式就变成了这样: http://www.laravel4.com/users 然后资源加载的路径href就变成了这样: http://www.laravel4.com/users/css/app.css 这样肯定调用不到

  • 解决laravel(5.5)访问public报错的问题

    1.访问public目录报错: 原因:laravel根目录缺少vendor依赖文件目录: 解决:使用 composer install 进行安装:若之前安装过使用 composer update 安装: 2.composer update 后报错: 原因:php.ini配置文件没有开启fileinfo扩展: 解决:打开php.ini配置文件,将extension=php_fileinfo.dll之前的;去掉:再次执行composer update 命令,成功执行安装.完美解决: 以上这篇解决la

  • 解决Laravel 不能创建 migration 的问题

    在 Laravel 项目中,由于测试,有时候用 php artisan make:migration create_xxx_table 创建数据库迁移.如果把创建的迁移文件 database/migrations/2016_09_13_081736_create_xxx_table.php 文件给删除了,再次执行 php artisan make:migration create_xxx_table 会报错: [ErrorException] include(/data/wwwroot/tj.c

  • 解决Laravel5.5下的toArray问题

    作为一个有轻度强迫症且受ThinkPHP影响较深的PHP码农,总觉得Laravel5.5的DB::xxoo->get()->toArray()之后竟然还没得到我想要的ThinkPHP中的select()出来的数组,于是决定做一下修改. PS:出于尽量不影响原有框架的考虑,我是新建了一个方法叫getList来暂代toArray那不知所谓的返回结果,在没有找到更好的解决办法之前,暂时这么用着,总体感觉,get()->getList()仍觉得略丑.... 具体修改如下: 1.在/vendor/

  • 解决laravel5.4下的group by报错的问题

    使用ORM查询数据显示这个错,这是因为laravel使用了开启了mysql的严格模式所以 如果要关闭的话,我们需要找到config/database.php这个文件,然后将 mysql下的这个改为false;就会关闭. 既然说严格模式那什么是样模式呢.据我所知在mysql在5.7有一个尿性 [报错:only_full_group_by],就是你group by的数据里面必须包含你查询的数据,意思就是如果你的sql是:select name,age from user group by name;

  • 解决tomcat部署下的web项目网页更改不能自动刷新的问题

    tomcat项目中网页上做了改动,然而浏览器刷新并没有卵用,很是烦,在网上也查找了很多答案,说需要个更改在server.xml里面的context标签中有一个reloadable="true",,然而我的就是true的显然不是这个问题,就是刷新不了 没办法,就发呆啊,肯定是tomcat的原因,无意间我双击了server,就是下面这个: 然后到达了tomcat设置的页面: 可能有各种原因吧,我的无法刷新页面就是上面的选项选错了,希望对你有所帮助! 以上这篇解决tomcat部署下的web项

  • 解决iOS11图片下拉放大出现信号栏白条的bug问题

    废话不多说了,具体解决方法如下所示: if(@available(iOS11.0, *)) { self.tableView.contentInsetAdjustmentBehavior=UIScrollViewContentInsetAdjustmentNever; }else{ // Fallback on earlier versions self.automaticallyAdjustsScrollViewInsets=NO; } 项目中很多下拉图片放大的效果,使用上面官方给出的iOS1

  • 解决Window10系统下Node安装报错的问题分析

    前言 今天电脑重装了win10系统,在安装Node的过程中出现了下面的问题,下面就和大家分享下用来解决这种问题的小方法. 报错原因 随便问下度娘我们就可以知道,导致报错的原因是由于权限的关系,因此我们只需要使用管理员权限来运行当前Node安装包就可以解决报错问题了. 具体方法 使用管理员权限打开命令行工具并且cd到node安装包的项目文件夹下执行下面代码: msiexec /i package node-v6.9.1-x64.msi 运行指令之后接下来就会自动弹出安装界面,然后我们只需要按照提示

  • 快速解决Android7.0下沉浸式状态栏变灰的问题

    1.绪论 现在基本上所有的应用都会去实现沉浸式状态栏,这个是应用的标配,如果你开发的应用没有,那这个吐槽点就多了,"这美工有审美观么""程序猿这么菜,沉浸式都不会?"-.. 咳咳-.. 开个玩笑啊,各有各的设计思想,不能怪程序猿. 2.问题 那么说到沉浸式状态栏的问题是什么呢?不知道大家有没有遇到过,应用在android7.0系统以下的手机上运行,沉浸式状态栏是正常的,但是在7.0以上的手机上运行就感觉没有沉浸式了,是分层的.无论怎么修改状态栏背景色都没用,看下图:

  • 解决ios微信下vue项目组件切换并自动播放音频问题

    最近在做一个英语答题项目 , 项目需求是通过答题取的成绩 , 答题的题型是分为 , 听音选图 , 看图选词 , 和填空题 . 项目总共分为了3个页面 , 开始页 ,答题页 和结束页面 ,答题页关于每种题型 , 我做了相应的组件 , 每次切换题目的时候 ,显示对应的的组件 , 要求听音选图的时候会自动播放音频 . 惯例 , ios下的safari和微信内置浏览器都不支持audio的自动播放 , 通常的解决方案都是通过 document.addEventListener('WeixinJSBridg

  • 解决Vue 通过下表修改数组,页面不渲染的问题

    需要注意的是,Vue之所以能够监听Model状态的变化,是因为JavaScript语言本身提供了Proxy或者Object.observe()机制来监听对象状态的变化.但是,对于数组元素的赋值,却没有办法直接监听,因此,如果我们直接对数组元素赋值: vm.todos[0] = { name: 'New name', description: 'New description' }; 会导致Vue无法更新View. 正确的方法是不要对数组元素赋值,而是更新: vm.todos[0].name =

  • 解决JavaScript layui 下拉框不显示的问题

    初学layui时会遇到 layui的下拉框总是显示不出来 代码没问题但是 页面就是不显示下拉框 复制下面js代码 layui.use('form', function(){ var form = layui.form; form.render(); }); 以上这篇解决JavaScript layui 下拉框不显示的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决Vue+Electron下Vuex的Dispatch没有效果问题

    这个问题是解决基于 vue 和 electron 的开发中使用 vuex 的 dispatch 无效的问题,即解决了 Please, don't use direct commit's, use dispatch instead of this. 问题. 先允许我梳理一下目录结构,以便阅读的时候不会一头雾水,你到底说的这个文件是哪个-- 其中 /src/main 是存放主配置文件的,/src/render 下面有 store.router.components 等. components 下面就

随机推荐