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

如何在Laravel中查询外部模型作用域?

在Laravel中,可以使用Eloquent提供的作用域(Scope)来查询外部模型的作用域。作用域是一种封装了常见查询逻辑的方法,可以在模型中定义和重用。

要在Laravel中查询外部模型的作用域,可以按照以下步骤进行操作:

  1. 创建一个新的作用域类:在Laravel项目的app目录下,创建一个新的作用域类,例如"ExternalScope"。
  2. 在作用域类中定义查询逻辑:在"ExternalScope"类中,可以使用"apply"方法定义查询逻辑。例如,如果要查询外部模型中名称包含特定关键字的记录,可以在"apply"方法中使用"where"方法进行筛选。
  3. 在作用域类中定义查询逻辑:在"ExternalScope"类中,可以使用"apply"方法定义查询逻辑。例如,如果要查询外部模型中名称包含特定关键字的记录,可以在"apply"方法中使用"where"方法进行筛选。
  4. 在外部模型中使用作用域:在需要查询外部模型的地方,可以使用"withGlobalScope"方法来应用作用域。例如,在控制器中查询外部模型时,可以在查询之前调用"withGlobalScope"方法。
  5. 在外部模型中使用作用域:在需要查询外部模型的地方,可以使用"withGlobalScope"方法来应用作用域。例如,在控制器中查询外部模型时,可以在查询之前调用"withGlobalScope"方法。

通过以上步骤,就可以在Laravel中查询外部模型的作用域了。这样可以将常见的查询逻辑封装到作用域中,提高代码的可读性和重用性。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库MySQL版(TencentDB for MySQL)、腾讯云对象存储(COS)、腾讯云人工智能(AI)等。

腾讯云产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

问题引出 在通过 Eloquent 模型实现增删改查这篇教程,我们已经学习了如何在 Eloquent 模型类中进行各种查询,但是这些查询大多需要手动调用查询构建器提供的各种方法来实现。...接下来,我们就来演示如何在 Eloquent 模型类上使用「作用」进行查询。...「局部作用」的实现也比较简单,在需要应用它的模型定义一个过滤器方法即可。...动态作用 此外,Eloquent 模型类还支持「动态作用」,所谓动态作用指的是在查询过程动态设置预置过滤器的查询条件,动态作用和局部作用类似,过滤器方法名同样以 scope 开头,只不过可以通过额外参数指定查询条件...`deleted_at` is null 动态作用的调用和移除方式和局部作用一样。 本系列教程首发在Laravel学院(laravelacademy.org)

2.5K20

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框架入门与进阶教程

74830
  • 3分钟短文:Laravel模型作用,为你“节省”更多代码

    laravel模型为我们提供了一层数据库操作层,将数据交互独立出来。 但是久而久之,随着项目的需求不断扩大,最常用的查询操作,同样会有大量的冗余代码。...全局作用 假设有些数据库查询操作,无论是在控制器内,或者在模板文件内,或者命令行方法内,都有重复的使用需求,要是在模型内有一个公用的方法,默认就加上这些筛选条件,就可以显著减少代码量了。...events WHERE `published` = 1; 如果条件 published = 1 在默认的情况下需要开启,我们可以使用laravel模型的 全局作用 方式为所有查询追加上这个条件。...模型作用设计方法拿出来温习了一下。...讲述了两个方法: 全局作用:全局起作用,需要手动移除; 本地作用:只有手动调用起作用,可链式使用; 这样的设计模式可以很大程度上节约查询代码,但是对于维护,需要同等熟悉的开发者彼此遵循开发规范,写出可维护的代码

    1.4K22

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

    我们从软删除的使用,再顺便说一说模型内的作用的概念。 代码时间 常规的删除操作分两步进行,一步是把数据从数据库查询出来,使用laravel模型的方法, 则返回的是一个模型对象。...在laravel, 这个软删除字段默认是 deleted_at。你也可以在模型手动指定。...既然说到了模型作用,我们不妨延伸一下,说说这个设计点,以及适用的场景。 比如说有一个查询条件在代码内到处都要用,有没有简写方法,写一次其他地方可以随意调用呢?这就是本地作用的方法了。...如果是想软删除条目那样,默认把所有的查询都追加 自定义的查询条件,就需要我们上面说的全局作用了。...写在最后 本文从laravel模型的写操作删除动作,讲到了软删除的概念。进而引申出来本地作用和全局作用的使用。软删除几乎贯穿了我们应用的始终,需要大家勤学苦练。

    1.3K30

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

    学习时间 比如对于业务逻辑,User模型在筛选查询的时候有非常多的限制条件,类似下面这样的: ? 这一堆令人头皮发麻的where,还不算变态。...就拿这个 model 的查询说起,你可以 "查询作用”这么个时髦的功能,有效分散和重用查询条件。 拿“全局作用”来说,它可以给模型查询都添加上约束。...Laravel 的软删除功能就是利用此特性从数据库获取 “未删除”的模型。 你可以编写你自己的全局作用,很简单、方便的为每个模型查询都加上约束条件。看官方给出的示例: ?...要将全局作用分配给模型,需要重写模型的 booted 方法并使用 addGlobalScope 方法: ?...就是在对应的 Eloquent 模型方法前添加 scope 前缀,在模型构造如下的作用方法: ?

    2.8K10

    3分钟短文:Laravel slug,让你的url地址更“好记”

    [img] 本文就来讲讲,如何在laravel构造友好的url路由。 啥是slug?...如果你有印象的话,应该会记得laravel模型的find等方法,是基于primary key进行索引,以便加快查询速度。拿到模型的ID,查询该条目数据,然后返回模型实例。...Event extends Model { use Sluggable, SluggableScopeHelpers; } 从名字你就能猜测的到,SluggableScopeHelpers 是一个全局作用文件...findBySlugOrFail('laravel-hacking-and-coffee'); 归根结底,就是使用slug字段记录查询的字符串,而slug字段在对应关系定义为 source => ‘name...写在最后 本文介绍了在模型文件内,引入slug的功能,并通过修改模型查询方式,让模型的默认查询方式修改为通过字符串进行查询,从而可以在路由文件内构造更友好的查询url。

    3.5K11

    Laravel学习记录--Model

    Model类 app/ Model添加 Model查询 Model更新 Model删除 Model约定 查询全局作用 查询本地作用 Model关联 一对一 一对多 远程一对多 渴求式加载 多对多...Laravel 自带的 软删除功能 就利用全局作用从数据库中提取「未删除」的模型。编写自定义的全局作用可以提供一个方便、简单的方法来确保给定模型的每个查询都受到一定的约束。...200 } } 应用全局作用 要将全局作用分配给模型,需要重写给定模型的 boot 方法并使用 addGlobalScope 方法: ',$price) } 在查询时直接调用 $goods = Good::Price(200)->get(); 全局作用可理解为限制约束,本地作用/动态作用则可理解为一些定义好的常用约束集合

    13.6K20

    Laravel5.7 Eloquent ORM快速入门详解

    $flight- history()- forceDelete(); 查询作用 全局作用 全局作用允许我们为给定模型的所有查询添加条件约束。...Laravel 自带的软删除功能就使用了全局作用来从数据库拉出所有没有被删除的模型。编写自定义的全局作用可以提供一种方便的、简单的方式来确保给定模型的每个查询都有特定的条件约束。...如果想要在给定查询移除指定全局作用,可以使用 withoutGlobalScope 方法,该方法接收全局作用的类名作为其唯一参数: User::withoutGlobalScope(AgeScope...例如,你可能经常需要获取最受欢迎的用户,要定义这样的一个作用,只需简单在对应 Eloquent 模型方法前加上一个 scope 前缀。 作用总是返回查询构建器实例: <?...作用被定义好了之后,就可以在查询模型的时候调用作用方法,但调用时不需要加上 scope 前缀,你甚至可以同时调用多个作用,例如: $users = App\User::popular()- active

    15.1K41

    Laravel 7发行说明

    , 第一方 CORS 支持, 路由模型绑定作用改进, 存根自定义, 数据库队列改进, 多邮箱驱动, 查询时间强制转换(casts),新的 artisan test 命令,以及各种其他错误修复和可用性改进...这些令牌可以被授予能力/作用,用于指定允许令牌执行哪些动作。 有关 Laravel Sanctum 的更多信息, 请查看 Sanctum 文档。...Heuvel 编写的受欢迎的 Laravel CORS 软件包,为配置跨资源共享(CORS) OPTIONS 请求响应提供了官方支持, 默认的 Laravel 应用程序框架 包含一个新的 cors ...有关 Laravel 7.x 的 CORS 支持的更多信息,请查阅CORS文档。 查询时类型转换 查询时类型转换由 Matt Barlow 开发贡献....有时候需要在查询执行过程对特定属性进行类型转换,例如需要从数据库表获取数据的时候。

    9K20

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

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

    2.5K10

    3分钟短文|Laravel 使用like匹配字符串的用法示例

    引言 本文接着laravel的功能讲解,说一说在模型查询条件内,使用like这样的SQL关键字 进行子字符串匹配。并通过几个示例,和不同的实现方法,为大家展示laravel的灵活性。...学习时间 比如有一个模型,存储的是用户的订阅数据。...如果实在不行,在可读性上,我们可以尝试一下laravel提供的本地作用功能, 在模型内,或者全局内创建一个查询方法。...当然了,如果倾向于使用原生的SQL语句实现,在模型查询方法上可以像下面这样写: BookingDates::whereRaw('email = ? or name like ?'..., [$request->email,"%{$request->name}%"])->get(); 特别注意的是laravel的参数绑定是使用问号的。

    2K10

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

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

    2.2K00

    3分钟短文:Laravel 编程优雅地添加定义常量

    引言 laravel妥妥的到处都是面向对象了,以前流程处理的PHP代码,很少见到踪影了, 为什么?大型应用实在是难以维护,所有代码设计必须有规有矩了。今天我们说一说, 如何在代码定义常量。 ?...学习时间 在laravel,在 .env 文件内定义常量当然是可以的,但是env文件, 尽量作为环境变量存储使用,且线上一般不需要修改。这是全局有效的。...类的属性 在面向对象代码,如果常量类型数据作用仅限于某个类,及其继承者, 那么可以将这部分数据定义为类的属性,提供后续访问。...在 config/app.php 文件内写入下述代码: 'aliases' => [ 'MyApp' => App\MyApp::class, ] 那么在控制器,或者模型,或者blade模板内,都可以这样使用...如果全局的常量,我们推荐写到配置文件;如果是局部作用的常量,我们推荐写到类属性内。 Happy coding :-) 我是@程序员小助手,持续分享编程知识,欢迎关注。

    1K20

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

    引言 laravel模型引入了SoftDeletes这个全局作用用于将数据库的条目 标记为删除,而实际上并不清除数据,这样可以为后续的数据恢复做铺垫。...学习时间 使用软删除功能,比较简单,只需要在模型中使用如下代码类: use Illuminate\Database\Eloquent\SoftDeletes; class User extends Model...那么好了,如果要自定义软删除字段,只用在继承类,也就是模型内编辑此常量即可: class User extends Model { use SoftDeletes; const DELETED_AT...使用了软删除功能后,会在模型查询方法上,默认追加 where deleted_at is null 那么如果使用了全量查询后,如何判断一个记录是否是已经软删除的呢?laravel提供了这些功能。...写在最后 本文通过对laravel模型软删除的源码分析, 为大家展示了引入软删除功能,并自定义软删除标记字段的方法。通过模型提供的方法,进而判断记录是否已软删除。

    1.5K30

    laravel-nestedset:多级无限分类正确姿势

    一致性检查和修复 作用 Nested Sets Model简介 Nested Set Model 是一种实现有序树的高明的方法,它快速且不需要递归查询,例如不管树有多少层,你可以仅使用一条查询来获取某个节点下的所有的后代...嵌套集合模型 安装要求 PHP>=5.4 laravel>=4.1 v4.3版本以后支持Laravel-5.5 v4版本支持Laravel-5.2、5.3、5.4 v3版本支持Laravel-5.1 v2...parent_id对应的父节点不存在的节点的数量 修复树 从v3.1往后支持修复树,通过parent_id字段的继承信息,给每个node设置合适的lft 和 rgt值 Node::fixTree(); 作用...protected function getScopeAttributes() { return [ 'menu_id' ]; } 现在我们为了实现自定义的查询,我们需要提供需要限制作用的属性...node,scope自动基于设置的限制作用属性来删选node。

    3.5K20

    Laravel框架关键技术解析

    query()方法(new static)->newQuery(); F.Laravel中使用的其他新特性 1.trait 优先级:当前类的方法会覆盖trait的方法,trait的方法会覆盖基类的方法...框架源代码等外部库交互的主要地方 Jobs:主要包含消息队列的各种消息类文件 Listeners:主要包含监听事件类文件 Providers:主要包含服务提供者的相关文件 app目录下可以放置模型类文件...B.Laravel框架应用程序的三个重要环节 1.路由 作用:根据请求资源定位符的不同,将用户的请求按照事先规划的方案提交给指定的控制器或者功能函数来处理 基础路由设置:Route::方法名('资源标识...控制反转是将组件间的依赖关系从程序内部提到外部容器来管理,而依赖注入是指组件依赖通过外部以参数或其他形式注入,两种说法本质上是一个意思 5.Laravel:Illuminate\Container\Container...//创建,第一次要composer down-autoload一下 php artisan db:seed [—class=类名] B.查询构造器 1.Laravel框架的查询构造器是在PDO扩展基础上设计的一个

    11.9K20

    跟我一起学Laravel-EloquentORM高级部分

    查询作用 全局作用 全局作用允许你对给定模型的所有查询添加约束。使用全局作用功能可以为模型的所有操作增加约束。...软删除功能实际上就是利用了全局作用功能 实现一个全局作用功能只需要定义一个实现Illuminate\Database\Eloquent\Scope接口的类,该接口只有一个方法apply,在该方法增加查询需要的约束...本地作用只对部分查询添加约束,需要手动指定是否添加约束,在模型添加约束方法,使用前缀scope <?...,使用下列方法,现在模型增加一个get方法 <?...Mutators 在Eloquent模型,Accessor和Mutator可以用来对模型的属性进行处理,比如我们希望存储到表的密码字段要经过加密才行,我们可以使用Laravel的加密工具自动的对它进行加密

    1.3K40
    领券