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

Laravel5.1 框架模型查询作用定义与用法实例分析

本文实例讲述了Laravel5.1 框架模型查询作用定义与用法。分享给大家供大家参考,具体如下: 所谓的查询作用就是允许你自定义一个查询语句 把它封装成一个方法。...1 定义一个查询作用 定义查询作用就是在模型中声明一个scope开头的方法: public function scopeHotArticle($query) { return $query...然后可以这样使用: public function getIndex() { $hot = Article::hotArticle(); dd($hot); } 2 动态的查询作用...动态作用是允许你传入参数的,根据参数来返回具体的逻辑。...$article- comment_count; echo "<br / "; } } 更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程

73030

Laravel Eloquent 模型类中使用作用进行查询

如果有一些查询需要在多个地方调用,那么在每个地方都要编写同样的代码,有没有什么办法对这种场景下的查询代码进行优化呢? Eloquent 模型类提供的「Scope」功能就可以帮我们实现这种优化。...从调用方式或者过滤器的作用范围来说,可以把「作用」分为「全局作用」和「局部作用」。「作用」都是围绕模型类展开的,不管是全局作用还是局部作用,都是作用到某个模型类上。...::addGlobalScope(new EmailVerifiedAtScope()); } 注:boot 方法会在模型实例化的时候调用。...所谓「局部作用」,指的是预置过滤器在对应模型类的指定查询中生效,与「全局作用」不同,「局部作用」需要额外指定才能生效,但是相应的,也更加灵活,可以适用于不同场景。...`deleted_at` is null 动态作用的调用和移除方式和局部作用一样。 本系列教程首发在Laravel学院(laravelacademy.org)

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

3分钟短文:Laravel 从软删除说到模型作用的概念

我们从软删除的使用,再顺便说一说模型内的作用的概念。 代码时间 常规的删除操作分两步进行,一步是把数据从数据库中查询出来,使用laravel模型的方法, 则返回的是一个模型对象。...所以引入了软删除的概念,就是在表内添加一个字段,用于标记,这一行条目是否算是删除状态。在laravel中, 这个软删除字段默认是 deleted_at。你也可以在模型中手动指定。...既然说到了模型作用,我们不妨延伸一下,说说这个设计点,以及适用的场景。 比如说有一个查询条件在代码内到处都要用,有没有简写方法,写一次其他地方可以随意调用呢?这就是本地作用的方法了。...声明一个全局作用很简单,只需在模型文件内添加如下代码: class Contact extends Model{ protected static function boot() {...写在最后 本文从laravel模型的写操作删除动作,讲到了软删除的概念。进而引申出来本地作用和全局作用的使用。软删除几乎贯穿了我们应用的始终,需要大家勤学苦练。

1.3K30

Laravel5.7 Eloquent ORM快速入门详解

判断给定模型实例是否被软删除,可以使用 trashed 方法: if ($flight- trashed()) { // } 查询被软删除的模型 包含软删除模型 正如上面提到的,软删除模型将会自动从查询结果中排除...$flight- history()- forceDelete(); 查询作用 全局作用 全局作用允许我们为给定模型的所有查询添加条件约束。...Laravel 自带的软删除功能就使用了全局作用来从数据库中拉出所有没有被删除的模型。编写自定义的全局作用可以提供一种方便的、简单的方式来确保给定模型每个查询都有特定的条件约束。...应用全局作用 要将全局作用应用到模型,需要重写给定模型的 boot 方法并使用 addGlobalScope 方法: <?...例如,你可能经常需要获取最受欢迎的用户,要定义这样的一个作用,只需简单在对应 Eloquent 模型方法前加上一个 scope 前缀。 作用总是返回查询构建器实例: <?

15K41

3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用你没用过

就拿这个 model 的查询说起,你可以 "查询作用”这么个时髦的功能,有效分散和重用查询条件。 拿“全局作用”来说,它可以给模型的查询都添加上约束。...Laravel 的软删除功能就是利用此特性从数据库中获取 “未删除”的模型。 你可以编写你自己的全局作用,很简单、方便的为每个模型查询都加上约束条件。看官方给出的示例: ?...要将全局作用分配给模型,需要重写模型的 booted 方法并使用 addGlobalScope 方法: ?...SQL 学习了全局作用,那么本地作用就更好理解了。...就是在对应的 Eloquent 模型方法前添加 scope 前缀,在模型中构造如下的作用方法: ?

2.7K10

Laravel学习记录--Model

Laravel 自带的 软删除功能 就利用全局作用从数据库中提取「未删除」的模型。编写自定义的全局作用可以提供一个方便、简单的方法来确保给定模型每个查询都受到一定的约束。...要将全局作用分配给模型,需要重写给定模型的 boot 方法并使用 addGlobalScope 方法: <?...删除全局作用 删除一个全局作用 User::withoutGlobalScope(AgeScope::class)->get(); 删除多个全局作用 如果你想要删除几个甚至全部的全局作用,可以使用...Laravel中Eloquent还支持动态作用,动态作用指在查询过程中动态设置预置过滤器的查询条件,动态作用与本地作用类似,都是以scope作为前缀,调用方法也相同,不同的是动态作用可以通过额外参数指定查询条件...belongsTo关联允许定义默认模型 ,使用withDefault(),适用于返回结果为空的情况 如: 1.widthDefault无参数时,返回父模型实例 <?

13.3K20

3分钟短文:Laravel说要用软删除,可不要真删

物理删除 其实就是真实地把数据从数据库条目清除,laravel模型提供了开箱即用的方法。...比如下面这样使用: $event = Event::find(12); $event->delete(); 首先使用primary key查询出需要的条目,返回一个Event对象实例,然后调用 delete...Laravel本身支持软删除,只需要进行少量的配置更改,以确保在执行delete或destroy时,模型的记录不会被实际删除。作为一个例子,我们修改Event模型以支持软删除。...其实原理很简单,就是为模型追加一个全局作用,为每个查询子句追加上如下筛选条件: WHERE deleted_at IS NULL laravel已经为我们写好这部分逻辑了,在模型内引入如下trait:...如果你在代码内要坚持查询全量数据,也包含软删除了的数据,那么代码这样写: $events = Event::withTrashed()->get(); 写在最后 本文我们有重温了laravel模型软删除功能

2.1K00

类和对象(上)、类的定义、类的访问限定符及封装、类的作用 、类的实例化、类对象模型 、this指针

访问权限作用从该访问限定符出现的位置开始直到下一个访问限定符出现时为止 4. 如果后面没有访问限定符,作用就到 } 即类结束。...五、类的作用 类定义了一个新的作用,类的所有成员都在类的作用域中。在类体外定义成员时,需要使用 :: 作用操作符指明成员属于哪个类。...类是对对象进行描述的,是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它;比如:入学时填写的学生信息表,表格就可以看成是一个类,来描述具体学生信息。...一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量 int main() { Person....7.2 类对象的存储方式猜测 对象中包含类的各个成员 缺陷:每个对象中成员变量是不同的,但是调用同一份函数,如果按照此种方式存储,当一个类创建多个对象时,每个对象中都会保存一份代码,相同代码保存多次,浪费空间

4000

Laravel 7发行说明

, 第一方 CORS 支持, 路由模型绑定作用改进, 存根自定义, 数据库队列改进, 多邮箱驱动, 查询时间强制转换(casts),新的 artisan test 命令,以及各种其他错误修复和可用性改进...Laravel Sanctum 为 SPA (单页应用程序),移动应用程序和基于令牌的简单 API 提供了轻巧的身份验证系统。 Sanctum 允许应用程序的每个用户生成多个 API 令牌。...这些令牌可以被授予能力/作用,用于指定允许令牌执行哪些动作。 有关 Laravel Sanctum 的更多信息, 请查看 Sanctum 文档。...Laravel 7 允许为单个应用配置多个邮件驱动。在 mail 配置文件中的每个邮件驱动都拥有它们自己的配置以及自己独特的 「transport」,这允许你的应用使用不同的邮件服务来发送某些邮件。...Heuvel 编写的受欢迎的 Laravel CORS 软件包,为配置跨资源共享(CORS) OPTIONS 请求响应提供了官方支持, 默认的 Laravel 应用程序框架 中包含一个新的 cors

9K20

浅谈PHP匿名函数和闭包

在PHP中必须手动调用闭包对象的bindTo方法或使用use关键字把父作用的变量及状态附加到PHP闭包中。...而从父作用继承变量的使用场景在Laravel底层源码中也是俯拾即是,比如Model.php(Illuminate\Database\Eloquent)的saveOrFail方法: 该方法的作用是使用事务将模型数据保存到数据库...,这里面我们使用匿名函数返回保存状态,同时使用use关键字将父作用的$options传递给该闭包以便其能够访问这个数据。...此外,还支持传递多个父作用变量到匿名函数,比如还是在Model类中的forceFill方法: 多个变量以逗号分隔即可。...第9行是重点所在,我们将路由回调绑定到了当前的App实例上。

96941

全局梳理、分析、总结 laravel 的核心概念

接下来讲解的每个模块,都是为了刚接触 laravel 框架的开发者 更容易搞懂 laravel 全局核心要点。以及方便熟悉laravel 的开发者进行参考。 1....要生成路由缓存,只需执行 artisan 命令 php artisan route:cache 运行此命令后,将在每个请求上加载缓存的路由文件。...(2)CheckForMaintenanceMode 中间件 源文件:app\Http\Middleware\CheckForMaintenanceMode.php 作用:检测项目是否处于 维护模式。...时,检测用户是否已经登录,如果已经登录,那么就重定向到首页,如果没有就打开相应界面。...(7)VerifyCsrfToken 中间件 源文件:app\Http\Middleware\VerifyCsrfToken.php 作用:验证请求里的令牌是否与存储在会话中令牌匹配。

6K41

static 静态变量引起 Laravel 中队列一个 Bug

静态变量仅在局部函数域中存在,但当程序执行离开此作用时,其值并不丢失。...Laravel 实际上是拿到队列的驱动,然后转到worker去运行任务, 传递了一个参数once是否只运行一个任务,这里我们直接查看daemon方法 转到src\Illuminate\Queue\Worker.php...,强制运行等等,就是队列任务是否能继续处理的前置判断 所以我们想临时暂停队列进程,可以向进程发送一个SIGUSR2信号,这时候队列进程处理完当前任务下一次就会停止,当想继续处理的时候,再发送一个SIGCONT...Laravel 这里我们直接看fire方法即可, 然后找到对应的队列驱动类,继承了父级的fire方法 Laravel 实际上是反射了这个job类然后调用它对应的方法 循环前的最后一个代码块就是...stopIfNecessary, 看进程是否需要终止, 前面说的queue:restart也是在这里处理 所以当我们使用静态变量的时候,虽然每次反射实例化了一个新的job,但实际上job去拿模型的属性的时候

16710

3分钟短文:Laravel 检查记录是否被软删除

引言 laravel模型中引入了SoftDeletes这个全局作用用于将数据库的条目 标记为删除,而实际上并不清除数据,这样可以为后续的数据恢复做铺垫。...本文就来说一说,如何检验一个数据条目是否被软删除了。 ?...使用了软删除功能后,会在模型的查询方法上,默认追加 where deleted_at is null 那么如果使用了全量查询后,如何判断一个记录是否是已经软删除的呢?laravel提供了这些功能。...$users = User::withTrashed()->where('active', 1)->get(); 然后使用遍历判断是否已软删除: foreach($user as $user) {...写在最后 本文通过对laravel模型中软删除的源码分析, 为大家展示了引入软删除功能,并自定义软删除标记字段的方法。通过模型提供的方法,进而判断记录是否已软删除。

1.4K30

Laravel 7 新特性-路由的趟坑之路(自定义键名以及作用

Laravel 7 开始新增了一些新特性,今天我们来讲解下 路由绑定的新用法,自定义键名(slug)以及作用(范围限定) 首先我们 安装最新版本的 Laravel ,并且创建两张数据表。...当然我们在以前的版本可以更改这个,我们需要在 模型中重写一个方法 getRouteKeyName 接下来我们看下 Laravel 7 以前是怎么实现的 首先。...Route::get('posts/{post:slug}', function (\App\Post $post) { dd($post); }); 作用(访问限制) 怎么理解呢?...其实如果我们要实现如上的模式,我们还得需要设置模型的绑定关系 Post 模型 <?...转载无需与我联系,但须注明出处,注明文章来源 Laravel 7 新特性-路由的趟坑之路(自定义键名以及作用) 联系我 hedeqiang.png

2.4K10

【黄啊码】一篇文章带你了解php中的闭包和匿名函数

闭包和匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。 匿名函数其实就是没有名称的函数,匿名函数可以赋值给变量,还能像其他任何PHP函数对象那样传递。...从父作用继承变量 在PHP中必须手动调用闭包对象的bindTo方法或使用use关键字把父作用的变量及状态附加到PHP闭包中。而实际应用中,又以使用use关键字实现居多。...而从父作用继承变量的使用场景在Laravel底层源码中也是俯拾即 bindTo方法 我们在前面已经提到,闭包是一个对象,所以我们可以在闭包中使用$this关键字获取闭包的内部状态,闭包对象的默认状态没什么用...第9行是重点所在,我们将路由回调绑定到了当前的App实例上。...第9行是重点所在,我们将路由回调绑定到了当前的App实例上。

53810
领券