php - 如何在 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 实现这一目标吗?
谢谢。
解决方案
以下是有条件地应用 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();
推荐阅读
- python - 如何将 pandas.core.series.Series 绘制为条形图?
- dialogflow-es - dialogflow webhook 中的电报用户电话号码或 ID
- rest - 如何在没有用户干预的情况下在 Web 应用程序后台获取 Google 访问令牌
- swift - UITableView 不符合协议
- c# - Autofac 和 ASP .Net Web API 版本 4.2.0 .NET Framework 4.7.2
- entity-framework - 使用FromSql时如何使用位域运行sql查询
- ios - 对象实例到 PIL 图像
- autohotkey - 如何将大量数据复制到剪贴板
- c# - 如何使用 JSON 在 Unity 中创建通知列表
- sql - 比较两列并计算结果行