首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解

这个时候,我们会想,如何将model中某些字段隐藏起来,不输出到JSON中。另外一种情况,比如字段是password等一些敏感信息时候,我们希望JSON数据里包含这样敏感信息。...php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * 希望在序列化中出现字段放入该数组中...我们输出JSON数据中,将会仅仅含有以上两个字段,即fullName和fullShippingAddress,非常干净,并且前端直接可用,不需要二次再加工。...,请戳官网文档: https://laravel.com/docs/5.7/eloquent-resources 本文主要讲解了Laravel5.5+ 使用API Resources快速输出自定义JSON...方法详解,更多关于Laravel框架使用技巧请查看下面的相关链接

4.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

路由使用进阶(二)

{task})来告知路由解析器需要从 Eloquent 记录中根据给定资源 ID 去查询模型实例,并将查询结果作为参数传入而不是资源 ID。...{task},然后默认以参数值作为资源 ID 在底层通过 Eloquent 查询获取对应模型实例,并将结果传递到闭包函数或控制器方法中。...,路由解析器都会从请求 URL 中解析出模型 ID ,然后从对应模型类 Task 中获取相应模型实例并传递给闭包函数或控制器方法: Route::get('task/model/{task_model...由于在正式开发中,出于性能考虑通常会对模型数据进行缓存,此外在很多情况下,需要关联查询才能得到我们需要结果,所以并不建议过多使用这种路由模型绑定。...cache(运行此命令之前先要清理之前缓存),即只在生产环境中使用路由缓存,本地开发环境路由经常变动,没有性能方面的考虑,无需缓存。

8.5K40

需要掌握 Laravel Eloquent 搜索技术

本文同步至个人博客 需要掌握 Laravel Eloquent 搜索技术 ,转载请注明出处。 当我们应用程序访问较少时(例如在项目初期阶段),直接进行项目编码就可以解决大多数问题。...本文将带领大家学习 MySQL 和 Eloquent 在搜索模块中设计相关技术。 基本 Eloquent Where 查询 作为首个要讲解搜索功能,我们先涉及新知识点。...这就是 whereRaw 工作原理。 接下来将焦点集中到真正关键处理:我们通过 MySQL lower() 函数将待查询 JSON 数据等数据转换成小写字符,实现 区分大小写 查询操作。...5.6.8 以上 Laravel 版本,可以查看 Laravel changelog 执行 sound like 操作,会进行一个发音相似性算法,然后获取结果集。...但是这并不是我们需要关注,我们仅需将待查询字符串传给 where 语句即可。返回结果集即会包含完全匹配数据,也会包含发音近似的数据。 总结 Laravel 为我们提供了简单实用查询功能。

3.5K10

Laravel系列4.3】模型Eloquent ORM使用(一)

这个 query where 条件是什么意思?就是我们上面这条 SQL 语句查询条件。它就是去查询 db_sex 表里面的数据,然后把获得结果对象返回回来。至于这个 ?...gender() 方法获得返回结果,也就是获取上面的 BelongsTo() 对象。...然后来到最后 tap() 中,tap() 是一个 Laravel 框架中定义全局函数,和 env() 函数在一起,它作用是将第一个参数当作第二个参数参数传递给第二参数,并执行第二个参数后,将第一个参数再返回回来...在这段代码中,就是先调用 BelongsTo 对象 getResults() 方法,获得关联真正 DbSex 这个 Model 对象,然后通过回调函数 setRelation() 绑定到 laravel...最后 tap() 函数还是会把之前传递进行去第一个参数值,也就是最终那个 DbSex 对象再一路返回到 __get() 中,这样,就完成了整个链条调用。

8.8K20

3分钟短文:Laravel 模型查询数据库几个关键方法

引言 本期继续我们laravel学习,主要说一说laravel使用eloquent orm 模型 读取数据库条目的几个常用方法。 ?...所以我们推荐使用where语句进行数据库SQL操作,将合适结果集返回,这样精简了数据库负载, 再者,使用集合操作方法,对结果集进行进一步格式化,效率会高多。...如果返回是多个条目,就不能用这些方法了: $vipContacts = Contact::where('vip', true)->get(); 有一个标准方法 get,就是返回一个 eloquent...如果你数据库条目固定, 是少量数据,那么直接用 $contacts = Contact::all(); 把记录全部拿出来就好了。...顺带再说一下聚合函数,使用关系型数据库很大因素就是其拉取关系型数据很高效, 因此也内置了很多聚合函数用于数据聚合操作。

2K40

Laravel系列4.4】模型Eloquent ORM使用(二)

而另外一个 map() 函数就不用多说了,之前我们说过,Laravel PDO 在默认查询构造器情况下,走是 PDO::FETCH_OBJ ,获得集合结果每个数据都是一个 stdClass...对象,而在 Model 下,走则是 PDO::FETCH_CLASS ,也就是会和我们指定模型类关联上,获得结果都是一个 App\Models\MTest Object 对象。...在所有模型都要继承 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 类中,我们很快就能发现一个 query() 静态方法。...别急,get() 、find() 都是在 查询构造器 中方法嘛。我们来看看 Model 中 __call() 这个方法。...参考文档: https://learnku.com/docs/laravel/8.x/eloquent/9406

2.8K20

laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析

name字段所有值 $res=DB::table('student')- pluck('name'); 当结果集中数据过多时,可以通过分块方式返回结果集,chunk函数第一个参数为分块大小(以每块...2个数据方式返回结果集),第二个参数为回调函数,当其返回false时就停止结果返回: DB::table('student')- chunk(2,function ($res){ foreach...('sex')- get(); //跳过一条数据后返回2条数据 $res=DB::table('student')- skip(1)- limit(2)- get(); 3.5、聚合函数 laravel...Eloquent默认主键为’id’,该字段为自增int型,如果需要自定义主键,可以通过$primaryKey来指定。...()、first()来获取数据 通过上面的增删改查可以看出Eloquent可以使用查询构建器所有方法,除了增删改查外,还有where、聚合函数等。

13.3K51

需要掌握 Laravel Eloquent 搜索技术

本文将带领大家学习 MySQL 和 Eloquent 在搜索模块中设计相关技术。 基本 Eloquent Where 查询 作为首个要讲解搜索功能,我们先涉及新知识点。.../ 获取包含 foo 文章 $result = Post::where('title', 'like', '%{$keyword}%')->get(); 我们可以看到 Eloquent 模糊查询功能十分灵活...这就是 whereRaw 工作原理。 接下来将焦点集中到真正关键处理:我们通过 MySQL lower() 函数将待查询 JSON 数据等数据转换成小写字符,实现 区分大小写 查询操作。...5.6.8 以上 Laravel 版本,可以查看 Laravel changelog 执行 sound like 操作,会进行一个发音相似性算法,然后获取结果集。...但是这并不是我们需要关注,我们仅需将待查询字符串传给 where 语句即可。返回结果集即会包含完全匹配数据,也会包含发音近似的数据。 总结 Laravel 为我们提供了简单实用查询功能。

4.2K20

Laravel5.7 Eloquent ORM快速入门详解

all 方法返回模型表所有结果,由于每一个 Eloquent 模型都是一个查询构建器,你还可以添加约束条件到查询,然后使用 get 方法获取对应结果: $flights = App\Flight...集合 对 Eloquent 中获取多个结果方法(比如 all 和 get)而言,其返回值是 Illuminate\Database\Eloquent\Collection 一个实例,Collection...类提供了多个有用函数来处理 Eloquent 结果集: $flights = $flights- reject(function ($flight) { return $flight- cancelled...}); 获取聚合结果 当然,你还可以使用查询构建器提供聚合方法,例如 count、sum、max,以及其它查询构建器提供聚合函数。...Laravel Schema 构建器包含一个辅助函数来创建该数据列: Schema::table('flights', function ($table) { $table- softDeletes(

15K41

Laravel 5 系列入门教程(一)【最适合中国人 Laravel 教程】

本系列教程使用 Laravel 5.0 版本,5.1 版本去掉了本系列教程主要讲解元素(Auth 系统),建议使用 5.1 来学习。...Laravel 已经为我们准备好了 Auth 部分 migration,运行以下命令执行数据库迁移操作: php artisan migrate 得到结果如下: 如果你运行命令报错,请检查数据库连接设置...模型 Models 接下来我们将接触Laravel最为强大部分,Eloquent ORM,真正提高生产力地方,借用库克一句话:鹅妹子英!...Eloquent 提供 Model 类 `Illuminate\Database\Eloquent\Model`,都在 `\App` 命名空间下。...如果你想深入地了解 Eloquent,可以阅读系列文章:深入理解 Laravel Eloquent(一)——基本概念及用法 ---- 接下来进行 Article 和 Page 类对应 articles

3.4K20

Laravel5.2之Demo1——URL生成和存储

学习主题 该demo主要涉及如下几个知识点: 创建数据库并迁移数据表 创建表单,学习Laravelblade模板引擎 创建名为Link模型Model 保存数据进入数据库 从数据库中获得...Mapping)为Eloquent ORM,其实就是Model层,来管理数据库中数据表一一对应关系。...Eloquent比较好用在于它提供了很多Feature功能模块,这些模块提供了许多面向对象方法便于使用,这样就不用写SQL语句了,代码看起来也很舒服。。...这里注意下:如果写table变量,laravel会自动根据model名字复数来找数据表,如这个model名字是link,那就找links表。...自带验证规则,'url'也是laravel自带URL验证规则,就是格式得符合URL格式,'|'表示意思。

24K31

如何使用 Laravel Collections 类编写神级代码

Laravel 提供了一些超赞组件,在我看来,它是目前所有 Web 框架中提供组件支持最好一个。...20 多行精简到了 3 行,代码干净整洁功能清晰任何人都可以立马理解。...又一个示例 现在让我们看下第二个示例,假设我们一个用户列表,我们需要基于角色(role)过滤出来,然后进一步如果他们注册时间为 5 年或以上 last name 以字母 A-M 开始仅获取第一个用户...如果你计划让它们可以在 Eloquent 集合上使用,你需要在此场景下做相应代码处理才行。...需要注意是,通过使用 Collection 类,您不仅可以获得一个方法库来简化编程工作,还可以选择一种从根本上改善代码方法。

2.1K20

Laravel Eloquent 模型关联关系(下)

基于关联查询过滤模型实例 有结果过滤 有的时候,可能需要根据关联查询结果来过滤查询结果,比如我们想要获取所有发布过文章用户,可以这么做: $users = User::has('posts')->get...whereHas/orWhereHas 方法基于闭包函数定义查询条件,比如我们想要过滤发布文章标题中包含「Laravel学院」所有用户: $users = User::whereHas('posts...('content', 'like', 'Laravel学院%'); })->get(); 无结果过滤 与 has/orHas 方法相对,还有一对 doesntHave/orDoesntHave 方法...很显然,它们用于过滤包含对应关联结果模型实例。...统计关联模型 我们还可以通过 Eloquent 提供 withCount 方法在不加载关联模型情况下统计关联结果数量。

19.5K30

3分钟短文 | Laravel SQL筛选两个日期之间记录,怎么写?

引言 今天说一个细分需求,在模型中,或者使用laravel提供 Eloquent ORM 功能,构造查询语句时,返回位于两个指定日期之间条目。应该怎么写? 本文通过几个例子,为大家梳理一下。...学习时间 假设有一个模型 Reservation,我们查询某个日期预订条目数,首先构造日期字符串,使用内置函数: $now = date('Y-m-d'); 返回当前日期。...然后调用模型 where 查询语句: $reservations = Reservation::where('reservation_from', $now)->get(); 上一条生成SQL语句如下...to 在laravel中你可以使用 whereBetween 这个查询子句。...当然了,上面的方法是在SQL中直接进行筛选,如果查询结果限制条目本身比较少,也能充分利用索引,所以担心查询速度,那么我们可以在查询完成后,在返回 Eloquent Collection 集合上,

3.2K10

laravel框架模型和数据库基础操作实例详解

分享给大家供大家参考,具体如下: laravel分为三大数据库操作(DB facade[原始查找],查询构造器[Query Builder],Eloquent ORM): use Illuminate\...,[5]); 2.查询构造器[Query Builder] laravel查询构造器提供了方便流畅接口,用来建立及执行数据库查找语法。...")- get(); var_dump($student); //first()返回1条数据 $student=DB::table("vipinfo")- first(); //结果集第一条记录 $...1.简介、模型建立及查询数据 简介:laravel所自带Eloquent ORM 是一个ActiveRecord实现,用于数据库操作。...//返回删除行数 视频资源学习参考:http://www.imooc.com/learn/697 更多关于Laravel相关内容感兴趣读者可查看本站专题:《Laravel框架入门与进阶教程》、《php

2.8K20

orm 系列 之 Eloquent使用1

Eloquent ORM 本文会是一个Eloquent使用教程,在此之前,我们先讲述下怎么搭建环境,完整系列请查看orm 基础环境搭建 记录下怎么用docker搭建laravel环境 新建项目composer...create-project --prefer-dist laravel/laravel eloquent 添加laradock cd eloquent;git init;git submodule...,让phpstorm能自动提示laravel类。...通过EloquentScheme Builder构建数据库 通过使用Schema Builder我们可以在设计数据库时候,写一行sql,通过Schema Builder,我们可以 creating...总结 本文主要是介绍了使用docker来构建laravel开发环境,同时,我们也介绍了怎么说会用phpstorm来开发laravel,搭建好环境后,主要介绍了EloquentSchema Builder

1.7K20

CVE-2021-39165: 从一个Laravel SQL注入漏洞开始Bug Bounty之旅

做演示自然选择开箱即用第二类,于是我挑了一个功能常见简单Cachet。...所以,这个检查形同虚设,用户输入数组 0x03 Laravel代码审计 熟悉Laravel同学对where()应该陌生,简单介绍一下用法。...而且因为这个API接口是GET请求,所以无需用户权限,这是一个无限制前台SQL注入。 Laravel这个数组特性可以类比于6年前我第一次发现ThinkPHP3系列SQL注入。...Laravel不支持堆叠注入,那么要利用这个漏洞,就有两种方式: 通过UNION SELECT注入直接获取数据 通过BOOL盲注获取数据 UNION肯定是最理想,但是这里无法使用,原因是用户这个输入会经过两次字段数量不同...再发送下面这个数据包来执行名为“ssti”模板,获得结果: POST /api/v1/incidents HTTP/1.1 Host: localhost:8080 Accept-Encoding:

60620
领券