在 OR 上下文中使用多个 Laravel 作用域

2024-04-15

我有一个订阅模型,其中包含start_date and end_date我的 Laravel 应用程序中的属性。我创建了两个查询范围,scopeActive 和scopeFuture(分别)来查找活动订阅和未来订阅。

我想知道如何在 OR 上下文中使用两个范围构建查询,以便我可以找到任何活动或未来的订阅。

订阅模式

/**
 * Scope a query to only include active subscriptions.
 *
 * @param \Illuminate\Database\Eloquent\Builder $query
 * @return \Illuminate\Database\Eloquent\Builder
 */
public function scopeActive($query)
{
    return $query->where('start_date', '<', Carbon::now())
                 ->where('end_date', '>', Carbon::now());
}

/**
 * Scope a query to only include future subscriptions.
 *
 * @param \Illuminate\Database\Eloquent\Builder $query
 * @return \Illuminate\Database\Eloquent\Builder
 */
public function scopeFuture($query)
{
    return $query->where('start_date', '>', Carbon::now());
}


public function business()
{
    return $this->belongsTo('App\Business');
}

商业模式

.....
public function subscriptions()
{
    return $this->hasMany('App\Subscription');
}

用户模型

public function business()
{
    return $this->hasOne('App\Business');
}

控制器

Subscription::active()->get();

对于静态上下文尝试:

$subscriptions = Subscription::query()
    ->active()
    ->orWhere(function ($query) {
        $query->future();
    })
    ->get();

第一次通话query()防止错误(因为我们可能有一个带有“的非静态方法”active“作为名称)。

Relation query (as requested in the comment)

$subscriptions = auth()->user()
    ->business()
    ->subscriptions()
    ->active()
    ->orWhere(function ($query) {
        $query->future();
    })
    ->get();

Note上面我们不需要调用query()(因为它不是来自静态上下文)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OR 上下文中使用多个 Laravel 作用域 的相关文章

  • 日期函数的奇怪行为

    我今天在 StackOverflow 上遇到了这个问题 但没有得到答案 我的问题是 echo date Y m d strtotime 2012 september 09 output 2012 09 01 echo date Y m d
  • /bootstrap/start.php 中的 Laravel 错误:\Illuminate\Foundation\Application 未找到

    因此 我在开发服务器上安装了 Laravel php5 5 3 标准安装 安装了 mcrypt 并收到以下错误消息 Fatal error Class Illuminate Foundation Application not found
  • 在 Laravel 视图中使用 CSS?

    我刚刚开始学习 Laravel 并且可以掌握控制器和路由的基础知识 我的操作系统是 Mac OS X Lion 它位于 MAMP 服务器上 我的routes php代码 Route get function return View make
  • laravel Blade 模板不渲染

    进入 Laravel 后 我尝试使用 Blade 模板 但它没有渲染 我的所有示例都来自 Laravel 文档 UPDATE 所以这是我的master blade php 文件位于资源 gt 视图 gt master blade php y
  • PHP三元运算符错误[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 三元运算符未按预期工作 https stackoverflow com questions 14214427 php ternary operator not working as expec
  • 如何使用 PHP 调整缩略图大小时提高图像质量?

    我在网上找到了这个脚本 它可以从图像中创建缩略图 但创建的缩略图质量很差 如何提高图像的质量 有没有更好的方法来创建缩略图 如果有的话 您能给我指点一下如何使用 PHP 创建缩略图的教程吗 这是下面的代码
  • 在 Laravel 5.4 中选择下拉列表的选定值

    我有一个名为 名称 的下拉列表 用户将在其中选择其中一个 提交后 如果出现一些错误 那么我想选择所选的名称 我在 laravel 5 4 中使用它 控制器 info DB table designation gt where status
  • PHP:如何获取
    中的名称值

    有没有办法获取form标签中name属性的值 我正在使用 PHP 但在 中没有看到它 POST 有没有办法获取form标签中name属性的值 我正在使用 PHP 但在 POST 中没有看到它 不 表单的名称属性永远不会设置为作为 POST
  • 如何在 Laravel 5.4 中使用 bootstrap 4?

    我在我的 laravel 应用程序上使用 npm 安装了 bootstrap 4 但我认为 bootstrap 3 的工作落后于 bootstrap 4 使用命令 npm install npm install email protecte
  • php_zip 在 php 5.3.5 中不存在

    我正在使用 PHPExcel 要求之一是我需要启用 php zip 如果您需要 PHPExcel 来处理 xlsx 或 ods 文件 您将需要 邮政编码扩展名 我正在使用 PHP v5 3 5 并在我的php ini文件中 我有以下几行 e
  • PHP shell_exec 使用 ssh 运行 shell 脚本

    我有一个 shell 脚本 使用 ssh 和密钥连接到另一台机器 因此它不需要用户名和密码 当我从命令行运行这个脚本时 它工作正常 但是当我从 php shell exec 运行这个脚本时 它不起作用 如果我与 PHP 建立 ssh 连接并
  • 自动安排并执行 PHP 脚本

    我编写了一个 PHP 脚本 它生成一个包含数据库中所有表的 SQL 文件 我想要做的是每天或每 n 天执行这个脚本 我读过有关 cron 作业的内容 但我使用的是 Windows 如何在服务器上自动执行脚本 您需要添加计划任务来调用 URL
  • PHP:检测USB设备

    我正在尝试使用 PHP 将用户名和密码存储到 USB 拇指驱动器上的文本文件中 因此 当用户返回使用 USB 密钥登录时 应该会打开一个弹出窗口 并提示输入用户名和密码 所以我的问题是如何使用 PHP 检测 USB 拇指驱动器 所以客户端或
  • 在php中将数组写入文件并获取数据

    我有一个数组 使用后如下所示print r Array 0 gt Array 0 gt piklu name gt piklu 1 gt Array 0 gt arindam name gt arindam 2 gt Array 0 gt
  • 如何在 PHP 中使用 foreach 循环仅回显一次特定的多个相同记录?

    我在 PHP 中使用 foreach 循环得到这些输出 现在 foreach 内部的输出如下所示 PHP代码 table thead tr th ACCOUNT NUMBER th th CATEGORY th th AMOUNT th t
  • 关闭旧的 php websocket

    我在用PHP Websockets https github com ghedipunk PHP Websockets创建一个简单的聊天服务器 当我第一次运行在我的服务器上创建 websocket 的 php 脚本时 一切正常 如果脚本由于
  • facebook og:image 不会从与 URL 相呼应的 php 文件中获取图像

    facebook OG 从回显 URL 获取图像 这可能吗 因为我包含了一个 php 文件 它将回显图像 URL 但是当我签入共享调试器时 内容为空 我的元标签 gt 和 php 文件
  • 在 php 中回显 JSON 数据

    我正在尝试回显一些 JSON 数据 问题是数据包含变量 但我的代码没有将变量放入字符串中 这是我的代码 status row Status priority row Priority echo status status priority
  • DOMDocument PHP 内存泄漏

    在 MAC 上的 MAMP 下运行 PHP 5 3 6 内存使用量每调用 x 次 3 到 8 次 就会增加 直到脚本因内存耗尽而终止 我该如何解决 libxml use internal errors true while true dom
  • 使用 PHP 将表单数据发送/发布到 URL [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个通过 POST 提交的表单 提交表单后我捕获变量 如何连接表单数据 然后将其 POST 到 url 然后重新定向到感谢页面 这不是确

随机推荐

  • 是否可以通过robots.txt控制抓取速度?

    我们可以在 robots txt 中告诉机器人抓取或不抓取我们的网站 另一方面 我们可以控制Google Webmasters中的抓取速度 Google bot抓取网站的速度 我想知道是否可以通过robots txt限制爬虫活动 我的意思是
  • IntelliJ 找不到类路径测试资源

    我遇到一个问题 IntelliJ 13 1 4 在运行单元测试时找不到ServiceLoader文件在src test resources我的模块的目录 在回答之前请注意我已完成以下所有操作 该模块是一个 Gradle 项目 如果我运行gr
  • iOS5 的 NSURLConnection 超时情况如何?

    我试图找到一个明确的答案 是否可以设置在 iOS 5 中使用 NSURLConnection 的超时值 我想将其设置为 30 秒 我搜索了过去关于此的帖子 但信息似乎相互矛盾 例如这个帖子 NSURLConnection 超时 https
  • 在 lucene 中搜索 UUID 不起作用

    我有一个 UUID 字段 以以下格式添加到我的文档中 372d325c e01b 432f 98bd bc4c949f15b8 但是 当我尝试通过 UUID 查询文档时 无论我如何尝试转义表达式 它都不会返回它们 例如 uuid 372d3
  • 何时使用 Soapobject 和 SoapPrimitive

    我一直在与ksoap2 lately 我仍然很困惑两者之间的确切区别是什么SoapObject and SoapPrimitive 以及何时使用它们 我猜它与字符串和数组有关 这是真的吗 我找到了一些链接 但感到困惑 谁能用最简单的英语形式
  • 在代理后面工作的 Azure 服务总线

    我通过 SDK 使用 Azure 服务总线 一切正常 但我遇到了我认为与代理相关的问题 当 IE 运行时 一切正常 但如果不运行 消息将无法发送 我正在代码中设置代理 但想知道我是否为服务总线 SDK 正确执行了此操作 WebProxy p
  • cpython 和 python 有什么区别[重复]

    这个问题在这里已经有答案了 我想知道 CPython 和 Python 之间的区别 因为我听说 Python 是用 C 开发的 那么 CPython 有什么用 Python 是一种语言 CPython http en wikipedia o
  • 为什么双向绑定有时在 Angular 中不使用点也能工作?

    考虑这个小提琴 Fiddle 1 http jsfiddle net martijngr Qvu5u 1 当您选择日期时 您会注意到上面的文本没有更新 这是因为我必须使用列表中的一个对象 如下所示 Fiddle 2 http jsfiddl
  • Anaconda 4.3,64 位(python 3.6),在 Windows“开始”菜单中留下不正确的截断路径

    在 Windows 上安装 anaconda 4 3 64 位 python 3 6 并选择 仅为当前用户安装 和 添加到路径 后 我注意到 anaconda 程序快捷方式在我的开始菜单上不起作用 它们在最后被切断 有谁知道正确的条目应该如
  • 多维 PyMC3 观察

    我的模型有一个 LogNormal RV C 形状为 W D W 中的每一行和 D 中的每一列都有一个正在拟合的参数 我试图将我的观察结果指定为 W D 矩阵 但是 这会导致 theano 编译错误 raise Exception Comp
  • CONNECT 请求未调用 Servlet service() 方法

    我正在尝试使用 Servlet 3 0 在 Jetty 中编写转发代理 我有一个简单的代码 public class testServlet extends HttpServlet Override protected void servi
  • 在表单提交之前发送 Ajax 请求

    是否可以在表单的 onsubmit 中发送 ajax 请求 我一直在尝试 结果不稳定 主要是因为如果浏览器发送我的请求的时间恰好比发送原始表单的时间长 那么一旦加载页面的位置发生变化 我的请求就会被丢弃 所以有时它甚至从未访问过服务器 基本
  • Python 中的反向 DNS 查找

    如果我有一个类似 2001 4860 4860 8888 的 IP 地址 如何获得 foo ip6 arpa 格式的完全限定域名 编辑 到目前为止 两个解决方案都给了我 google public dns a google com 也许反向
  • 使用 ASP.NET MVC ViewBag 和 DropDownList 时遇到困难

    我的难点是如何使用ViewBag with DropdownListFor 在我的控制器中我有 TestModel model new TestModel ViewBag Clients model Clients ViewBag Stat
  • 使用 gem 安装 Rails,加载命令时出错:安装未定义的方法 'invoke_with_build_args`

    我正在尝试在 Debian 上安装 Rails 当运行这个命令时 gem install rails 我给出了这个错误 ERROR Loading command install LoadError cannot load such fil
  • 如何使用 Retrofit 传递数组参数?

    我想要post数据如下 user id 14545646 list 4545645 4545645 4545645 4545645 我用了以下Retrofit method interface DeleteOrder FormUrlEnco
  • 多重继承:从 void * 转换为第二个基类后出现意外结果

    我的程序需要使用 void 来在动态调用情况下传输数据或对象 以便它可以引用任意类型的数据 甚至原始类型 然而 我最近发现 在具有多个基类的类的情况下 向下转换这些 void 的过程会失败 甚至在调用这些向下转换的指针上的方法后使我的程序崩
  • 如果 SELECT 语句没有结果,则使用 CASE 返回字符串

    如果我的 SELECT 语句没有结果 是否可以使用 CASE 返回某个字符串 例子 DECLARE accountnumber AS VARCHAR 10 SET accountnumber account number to search
  • 在 Watson Assistant 中保存用户输入(字符串)

    我正在构建一个基于 IBM Watson 的聊天机器人应用程序 我需要将用户输入保存到变量中 我在网上搜索 只找到输入必须是实体系统 数字 日期 时间 位置 人员 的教程 在我的对话框中 我询问用户他的标识符 该标识符应该是字母数字字符串
  • 在 OR 上下文中使用多个 Laravel 作用域

    我有一个订阅模型 其中包含start date and end date我的 Laravel 应用程序中的属性 我创建了两个查询范围 scopeActive 和scopeFuture 分别 来查找活动订阅和未来订阅 我想知道如何在 OR 上