解决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问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
解决在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 下面就
随机推荐
- js location.replace与location.reload的区别
- js实现文件上传表单域美化特效
- asp.net后台弹窗如何实现
- PHP 之 写时复制介绍(Copy On Write)
- thinkPHP5.0框架环境变量配置方法
- 深入理解C#索引器(一种支持参数的属性)与属性的对比
- ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
- javascript实现简单查找与替换的方法
- 浅谈java中BigDecimal的equals与compareTo的区别
- 论坛20大经典变态楼主主题和回复,暴强!
- Lua和C++的通信流程代码实例
- python连接字符串的方法小结
- 深入理解javascript变量声明
- 详解axios在node.js中的post使用
- 20行Android代码写一个CircleImageView
- java两种单例模式用法分析
- Android TouchListener实现拖拽删实例代码
- 基于PHP中的常用函数回顾
- 关于PHP中Object对象的笔记分享
- python下10个简单实例代码