我有一个名为Document的模型,其中有一个状态字段,其中可能的值是Dummy_Data ['done', 'failed', 'sent', ....].

我希望获得所有文档where status='done',如果它们存在于数据库中,或者如果第一个条件是false,则获取所有文档,其中status='sent'.

我try 过这个查询,但我得到的文档具有两种状态.

$result->documents()->where(function ($query) {
                $query->where('status', 'done')
                    ->orWhere('status', 'sent');
            })->get();

推荐答案

如果没有问题,您可以拆分成两个查询.代码也将更容易阅读.

// getting documents with status done
$documentsQuery = $result->documents()->where('status','done');
 

// if there are no documents, add the other condition
if(!$documentsQuery->exists()){
    $documentsQuery = $documentsQuery->orWhere('status','sent');
}

dd($documentsQuery->get());

Php相关问答推荐

无法使用PHP DomDocument找到IMG元素

Laravel 10查询中的多个where子句

基于验证动态更改输入字段类(名称密码)&

在函数内部获取一致的单选按钮值以更新WordPress用户数据

LaravelEloquent 的地方条件父/子与第三模型多对多

如何更改数据表行背景 colored颜色

从两个日期创建日期范围,然后为范围中的每个日期复制子数组

PHP -将字符串拆分为两个相等的部分,但第二个字符串中的单词更多

htaccess重命名index.php以在URL中显示为SEO的友好名称

CKEDITOR-如何在PHP中判断提交后的空数据

PHP 数组中第一级 node 到 XML 的唯一名称

在 WooCommerce 中何时何地执行 woocommerce_order_status_completed_notification 挂钩?

Laravel 10 中的自定义类未找到

MongoDB Laravel Jenssegers 包:插入数据库时​​未定义的类常量PRIMARY

使用 foreach php 将记录正确分配给正确的父级

获取 Shopware 6 集合元素的值,PHP

将 WooCommerce 0 销售价格替换为自定义文本,并保留常规价格删除线

Laravel:ArgumentCountError: 函数 App\Mail 的参数太少

如何用 php ML 解决这个问题?

如何在 Laravel 9 中判断异常是否可报告?