Laravel 5.3 查询构建器方法 where/update 新增 JSON 属性操作语法 | 新特性介绍 | Laravel 新特性系列


本站和网页 https://xueyuanjun.com/post/5209.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Laravel 5.3 查询构建器方法 where/update 新增 JSON 属性操作语法 | 新特性介绍 | Laravel 新特性系列
Laravel 学院
文档
Laravel 8.x 中文文档
Laravel 7.x 中文文档
Laravel 6.x 中文文档
Laravel 5.8 中文文档
Laravel 5.7 中文文档
Laravel 5.6 中文文档
Laravel 5.5 中文文档
Laravel 5.4 中文文档
Laravel 5.3 中文文档
Laravel 5.2 中文文档
Laravel 5.1 中文文档
Lumen 中文文档
全栈教程
PHP 全栈工程师指南
PHP 入门到实战
Laravel 入门到精通
Vue.js 入门到实战
玩转 PhpStorm 教程
Laravel 博客入门项目
Laravel 微信小程序项目
Laravel 前后端分离项目
Swoole 入门到实战
Eloquent 性能优化实战
Redis 高性能实战系列
Laravel 新版本特性
PHP 新特性与最佳实践
Golang
Go 入门教程
Go Web 编程
Gin 使用教程
微服务开发
内功修炼
数据结构与算法
网络协议
微服务从入门到实践
高性能 MySQL 实战
高性能 Redis 实战
Laravel 消息队列实战
Laravel 从学徒到工匠
PHP 设计模式系列
名企面试指南
资源库
Laravel 资源大全
Laravel 开源项目
Laravel 扩展包
Laravel 资源下载
更多
博客 & 新闻
问答 & 讨论
Leetcode 题解
学院君读书笔记系列
关于 Laravel 学院
Laravel 互助学习群
Golang 互助学习群
更多
Laravel 中文文档
Laravel 全栈教程
Laravel 学习路径
Go 入门教程
程序员内功修炼
博客
问答
搜索
注册
登录
Info
Content
章节导航
Laravel 新特性系列
目录索引
新特性介绍
30篇文章
Laravel 8 新特性和功能优化速览
适用于单页面应用的轻量级用户认证解决方案 Laravel Airlock 功能速览
Laravel 7 将支持直接在路由定义中自定义隐式路由模型绑定
Laravel 6 之后新版本的发布周期介绍
Laravel 6.0 将新增为指定队列任务设置中间件的功能
Laravel 5.8 新特性系列 —— 编译后的 Blade 模板引入编译前模板文件路径以便调试
Laravel 5.8 新特性系列 —— 支持策略类自动解析功能
Laravel 5.8 新特性系列 —— 废弃全局的字符串和数组相关辅助函数
Laravel 5.8 新特性系列 —— 缓存有效期单位调整
Laravel 5.7 新特性之优化动态调用 Eloquent 模型导致的错误消息
Laravel 5.7 新特性之引入 Laravel Dump Server 扩展包方便本地开发代码调试
Laravel 5.7 新特性系列之新的 URL 生成语法
Laravel 5.7 新特性系列之 resources 目录调整
Laravel 5.4 新特性系列 —— 新增对集合元素的高阶消息传递支持
Laravel 5.3 新特性系列 —— 路由文件及路径修改
Laravel 5.3 新特性系列 —— 更简单地自定义分页模板
Laravel 5.3 新特性系列 —— 新增上传图片尺寸验证规则
Laravel 5.3 新特性系列 —— Blade 模板新增 $loop 变量
Laravel 5.3 新特性系列 —— 深入探讨 Laravel Echo 使用:实时聊天室
Taylor Otwell 在 Laracon US 大会上关于 Laravel 5.3 新特性演讲总结
Laravel 5.3 起将使用 Vue.js 作为默认 JavaScript 前端框架
Laravel 5.3 查询构建器方法 where/update 新增 JSON 属性操作语法
Laravel 5.3 新增全局辅助函数 cache() 用法一览
Laravel 5.3 将会简化 app 目录下的子目录结构
Laravel 5.2 新特性系列 —— 中间件组的定义及使用
Laravel 5.2 新特性系列 —— 访问频率限制中间件throttle的使用
Laravel 5.2 新特性系列 —— 隐式路由模型绑定功能实现
Laravel 5.2 新特性系列 —— 表单数组输入验证功能实现
Laravel 5.2 新特性系列 —— 多用户认证功能实现详解
Laravel 5.1.11 发布 — 支持用户授权功能
图书
Laravel 新特性系列
新特性介绍
Laravel 5.3 查询构建器方法 where/update 新增 JSON 属性操作语法
Laravel 5.3 查询构建器方法 where/update 新增 JSON 属性操作语法
由 学院君 创建于6年前, 最后更新于 2年前
版本号 #3
29035 views
7 likes
0 collects
从 5.0 版本起 Laravel 就支持 JSON 格式数据的转换,之前这样做的目的只是为了方便业务处理,数据存储在数据库的数据类型依然是 TEXT,但是 MySQL 5.7 版本起开始支持原生的 JSON 数据类型,这将为我们的开发带来极大方便。Laravel 5.3 也为基于 JSON 类型的数据查询和更新引入了新的语法。
假设我们有一个包含 JSON 类型字段的数据表:
class CreateContactsTable extends Migration
   public function up()
Schema::create('contacts', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->json('meta');
$table->timestamps();
});
...
我们假设每个联系表单都包含一些基本功能信息,比如联系人姓名,但是另外的一些属性是很灵活的,存储这种类型信息的最好方式就是 JSON 类型 —— 就像上面的 meta 字段。
假定某个联系表单信息如下:
"id": 1,
"name": "Alphonse",
"meta": {
"wants_newsletter": true,
"favorite_color": "red"
现在我们想要获取所有favorite_color为red的用户,在 Laravel 5.3 中我们可以这么做:
$redLovers = DB::table('contacts')
->where('meta->favorite_color', 'red')
->get();
这段代码将会从contacts表中把meta字段的favorite_color属性值为red的所有记录取出来。
如果想要更新meta字段属性可以这么做:
DB::table('contacts')
->where('id', 1)
->update(['meta->wants_newsletter' => false]);
即使wants_newsletter键值之前为空,现在也会被设置为false。
神奇吧,在 Laravel 5.3 中我们可以基于JSON字段的属性进行查询和更新,而不需要去写那些枯燥重复的处理代码。
注:目前只有 MySQL 5.7+ 支持这一特性。
Laravel
JSON
查询
查询构建器
更新
MySQL
新特性
5.3
点赞
取消点赞
收藏
取消收藏
赞赏
分享到以下平台:
<< 上一篇:
Laravel 5.3 起将使用 Vue.js 作为默认 JavaScript 前端框架
>> 下一篇:
Laravel 5.3 新增全局辅助函数 cache() 用法一览
7 条评论
#1
网虫资源网
评论于 6年前
正在删除评论...
这个好 是不是 使用5.3 mysql也必须要升级到 5.7啊
#2
胖子
评论于 6年前
正在删除评论...
挺好用的,只不过使用场景不多
#3
颜造城
评论于 6年前
正在删除评论...
#4
___柳青杉
评论于 6年前
正在删除评论...
超赞!!之前有个场景就是要用这样的语法,但是之前没有这样的语法,处理起来就非常麻烦了,以后就方便了!
#5
dobest
评论于 6年前
正在删除评论...
这个只能使用MySQL5.7以上版本的吧!!!
#6
学院君
评论于 6年前
正在删除评论...
是的
#7
张鹏
评论于 5年前
回复 #37
正在删除评论...
请问,按mysql json格式修改时没问题的,查询时报错是什么原因呢?php 5.6.30 mysql5.7.18
登录后即可添加评论
升级为学院君订阅用户(新年优惠🎁)
相关推荐
Laravel 5.3 新增全局辅助函数 cache() 用法一览
Laravel 新特性系列
新特性介绍
Laravel 5.3 新特性系列 —— Blade 模板新增 $loop 变量
Laravel 新特性系列
新特性介绍
Laravel 5.3 新特性系列 —— 新增上传图片尺寸验证规则
Laravel 新特性系列
新特性介绍
Laravel 5.3 新特性系列 —— 更简单地自定义分页模板
Laravel 新特性系列
新特性介绍
目录索引
Laravel 新特性系列
回到顶部
2022 基于 Laravel 6 构建
关于学院
订阅服务
友情链接
站点地图
本站 CDN 加速服务由又拍云赞助