首页 > 解决方案 > 如何在 Laravel Eloquent 中实现嵌套的 If 语句?

问题描述

我正在使用 laravel eloquent 从 mongodb 获取数据。

场景是,有3个字段:

字段_1、字段_2、字段_3。

field_1 是必需的,而 field_2 和 field_3 是可选的。

如果有 field_3 我需要在 field_3 上应用 where 子句,如果有 field_2,where 子句将应用在 field_2 上,否则默认将 where 子句应用在 field_1 上。

只是我想用 Laravel Eloquent 做以下事情:

if(field_3 is notNull){
     -> where(field_3 = "something");
}
elseif(field_2 is notNull){
     -> where(field_2 = "something");
}
else{
     -> where(field_1 = "something");
}

我希望用 SQL 查询来做到这一点。我可以使用 Laravel 5.5 Eloquent Model 实现这一目标吗?

谢谢。

标签: phpmongodblaravellaravel-5eloquent

解决方案


以下是有条件地应用 where 子句的示例。希望以下代码有所帮助

$customers = Customer::where('field_1', $field_1);

if( isset($field_2) )
{
    $customers = $customers->where('field_2', $field_2)
}

if( isset($field_3) )
{
    $customers = $customers->where('field_3', $field_3)
}

$customers = $customers->get();

推荐阅读