Laravel 查询带有“if”条件?

2024-04-07

我正在尝试使用 Laravel 4 制作高级搜索表单,这是查询:

$result = DB::table('users_ads')
        ->join('ads', 'users_ads.ad_id', '=', 'ads.id')         
        ->orderBy($column, $method)
        ->where('status', TRUE)
        ->where(function($query) use ($input)
        {
            $query->where('short_description', $input['search'])
                    ->where('category', $input['category'])
                    ->where('product', $input['product']);

        })
        ->join('users', 'users_ads.user_id', '=', 'users.id')
        ->select('ads.id', 'ads.img1', 'ads.short_description', 'ads.category', 'ads.product', 'ads.price', 'users.city')
        ->get();

    return $result;

问题是用户可能不会使用所有输入字段。所以我想在这部分包含一些 if 条件:

$query->where('short_description', $input['search'])
                    ->where('category', $input['category'])
                    ->where('product', $input['product']);

..因此,如果输入为空,则删除“where”条件。


您可以将每个 where 包装在 if 语句中。

$query = DB::table('user_ads')
            ->join('ads', 'users_ads.ad_id', '=', 'ads.id')
            ->orderBy($column, $method);

if ($input['search']) {
    $query->where('short_description', $input['search']);
}

if ($input['category']) {
    $query->where('category', $input['category']);
}

$query->join('users', 'users_ads.user_id', '=', 'users.id')
    ->select('ads.id', 'ads.img1', 'ads.short_description', 'ads.category', 'ads.product', 'ads.price', 'users.city')

$result= $query->get();

return $result;

我相信沿着这些思路的东西会起作用。

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

Laravel 查询带有“if”条件? 的相关文章

  • SQL命令文本到DataSet的直接方法

    如果我有 sql 命令 获取数据集的最直接途径是什么 string sqlCommand SELECT FROM TABLE string connectionString blahblah DataSet GetDataSet sqlCo
  • 如何搜索表中的所有列?

    如何在 SQL Server 中搜索表的所有列 SELECT FROM yourtable WHERE val IN field1 field2 field3 field4 如果您正在寻找精确的全场比赛 如果你正在寻找子字符串匹配 你将不得
  • Sql Server 的夏令时

    我们正在使用一个以 C Unix 格式存储日期的旧应用程序 C 时间基本上是自 1970 年 1 月 1 日以来的秒数 日期以整数形式存储在 SQL Server 数据库中 我正在为使用这些日期的报告编写视图 到目前为止 我正在使用以下命令
  • 正则表达式替换混合数字+字符串

    我想删除所有包含数字的单词 示例 LW23 London W98 String 从上面的字符串中我唯一想保留的是 London String 这可以用正则表达式来完成吗 我目前正在使用 Python 但 PHP 代码也很好 Thanks E
  • 从单个 javascript 函数向两个不同的 PHP 脚本发送两个 Ajax 请求

    是否可以同时向两个或多个 Php 脚本发送 Ajax 请求 我知道这可以串行实现 从 1 获取响应 然后从另一个获取响应 但我想知道是否可以同时实现 请协助我使用以下代码 function calShowUpload if http rea
  • 在 Laravel 中按数据透视表 create_at 排序

    在我的数据库中 我有以下表格 courses id 名称 创建时间 更新时间 students id 名称 创建时间 更新时间 课程 学生 id course id student id created at updated at 我正在尝
  • Mongodb $push 嵌套数组

    我想向我的嵌套数组添加新数据 我的文档是 username erkin email email protected cdn cgi l email protection password b playlists id 58 name asd
  • 我的 PHP 代码不会将记录插入到 mySQL 数据库表中[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的网站上
  • 如何将彼此“接近”的纬度/经度点分组?

    我有一个用户提交的纬度 经度点的数据库 并且正在尝试将 接近 点分组在一起 接近 是相对的 但目前看来约为 500 英尺 起初 我似乎只能按前 3 个小数位具有相同纬度 经度的行进行分组 大约是一个 300x300 的盒子 了解当您远离赤道
  • 如何检查oracle数据库中分配给模式、角色的对象的权限(DDL、DML、DCL)?

    大多数时候 我们都在与愚蠢的事情作斗争 以获取架构 角色及其对象的权限详细信息 并尝试找到一些简单的方法来获取有关它的所有详细信息以及伪查询代码 以批量生成授予语句以供进一步使用执行 所以我们在这里得到它 关于数据字典视图前缀的一些简单介绍
  • 将单独的月、日和年值转换为时间戳

    我有月份值 1 12 日期值 1 31 和年份值 2010 2011 2012 我还有一个小时值和一个分钟值 我怎样才能把这个给strtotime 它可以以某种方式将其转换为时间戳吗 当您已经知道年月和日期时 为什么将字符串转换为日期 us
  • 如何使用多个数据库设置 symfony 3 学说迁移?

    我在验证和更新模式时努力让 symfony doctrine 排除数据库视图 我第一次尝试没有教条迁移 看到这个问题 https stackoverflow com questions 46775200 symfony 3 doctrine
  • PHP URL 验证

    我知道有无数的线程问这个问题 但我一直无法找到一个可以帮助我解决这个问题的线程 我基本上试图解析大约 10 000 000 个 URL 的列表 确保它们根据以下标准有效 然后获取根域 URL 此列表包含您能想象到的几乎所有内容 包括类似的内
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 将价格格式设置为逗号分隔

    在我的数据库中 我有类似的值 256 23 200 33 89 33 133 45 我必须将这些值乘以千 然后将结果格式化为价格 逗号分隔 256 23 x 1000 256230 I want to show this as 256 23
  • 运行一个特定的 Laravel 迁移(单个文件)

    我的项目中有 5 次迁移 我只想运行这些迁移之一 是否可以将单个文件的名称传递给php artisan migrate命令 您可以将迁移放入更多文件夹中并运行如下命令 php artisan migrate path app databas
  • REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除逗号

    我在 oracle 论坛网站找到了一个例子 输入字符串 a b c x y z a xx yy zz x WITH t AS SELECT a b c x y z a xx yy zz x col1 FROM dual SELECT t c
  • 在 Windows 上查看 PHP 文件夹

    我正在编写一个简单的 PHP 脚本来监视文件夹及其子文件夹的任何更改 新文件 修改 删除 然后执行操作 我将使用 Windows 上的命令行运行此脚本php f script php 我一直在寻找一种在 Windows 上观看具有 PHP
  • 由于未定义符号,PECL solr 未加载:curl_easy_getinfo

    我正在尝试加载 PECL solr 扩展 我尝试使用 pecl install solr 并下载并使用 phpize configure make 来安装它 在这两种情况下 扩展安装时都没有错误 但在 apache 重新启动后 或在命令行上
  • 如何在 PostgreSQL 中使用条件和子查询创建唯一索引?

    我使用 PGSQL 并尝试添加下面的索引 CREATE UNIQUE INDEX fk client ON user client fk client WHERE fk client NOT IN SELECT fk client FROM

随机推荐

  • 当多个基类具有同名成员函数时,如何解决函数调用歧义?

    我有一个与 C 多重继承相关的基本问题 如果我有如下所示的代码 struct base1 void start cout lt lt Inside base1 struct base2 void start cout lt lt Insid
  • 动态元素与强类型元素

    我是一名 Web 开发人员 目前正在使用 mvc3 razor 和Umbraco https en wikipedia org wiki Umbraco创建网络应用程序 我从事这项工作的时间不长 已经从使用动态元素转向使用强类型元素来遵循标
  • 使用现有绘图创建闪亮的下拉菜单

    我对 R 很陌生 所以这可能是非常明显的 但我真的被困住了 我已经创建了五个现有的绘图图表 我希望能够从下拉列表中选择闪亮的它们 我无法使现有图表名称和下拉列表之间的链接正常工作 我最近的尝试 不起作用 ui lt shinyUI flui
  • 删除百分比轴中的小数 - R [重复]

    这个问题在这里已经有答案了 我有一个图 我需要从百分比数字中删除小数 数据已经四舍五入 两位小数 数据示例 gt head df X 1 0 05 0 28 0 08 0 19 0 33 然后我用它来绘制它scale x continuou
  • Java 版本号的正则表达式

    我有一个正则表达式如下 d d d 它将字符串验证为 1 0 0 软件版本 我如何编辑它才能使以下字符串也有效 1 0 0 SNAPSHOT 1 0 0 RC 1 0 0 RELEASE 版本号后面可以跟有字母数字字符串 但前提是有 or
  • 更改循环位置时的 tJavaFlex 行为

    工作中遇到一些问题 我怀疑是因为对tJavaFlex缺乏了解 我在此测试作业中生成 10 行 并在 tJavaFlex 内生成循环 因此有 10 行进入 并且 开始 和 结束 部分中有一个循环 我预计每输入一行 都会生成 10 个相同的行
  • 如何使用我现有的 Web 项目实现数字签名

    我正在开发一个项目 用户需要对文档进行数字签名 我检查了谷歌并了解 sinadura 这是一个桌面应用程序 但我需要将其调用到我的网络应用程序中 我在 Linux 服务器上安装了 alfresco 社区版 https www alfresc
  • ViewPager PageTransformer 与支持库 v13

    我的应用程序使用Android的ViewPager和FragmentStatePagerAdapter 它只需要支持Android 4 x或更高版本 我正在为 ViewPager 使用 v13 支持库 所以我不需要处理 SupportFra
  • UITabBar 背景图像的图像缩放

    我在我的应用程序中创建了 UITabBarController Then in viewDidLoad 我想更改 UITabBar 背景图像 这是我试图使其工作的代码 class MainTabBarController UITabBarC
  • Angular 路由器:忽略路径参数中的斜杠

    我有动态路线could参数内包含斜杠或反斜杠 例如 http localhost 4200 dashboard T64 27D我应该导航到带有路线的页面T64 27D 这是我的导航方式this router navigate dashboa
  • 使用 React 前端和 Rails 后端的带有 google calendar api 的客户端 OAuth

    所以我试图做 google oauth 来为我的用户获取刷新令牌 实际上并没有使用 google oauth 来保存用户 当我使用客户端 OAuth 进行 google api 时 一切正常 但当您进行握手时 它们不提供刷新令牌 仅提供 a
  • Swift 不支持 SDK“iPhoneSimulator8.4.sdk”

    刚刚更新到 Xcode 7 0 1 在 El Capitan GM 上运行且禁用了 SIP 现在每次我尝试编译 Swift 项目时都会收到此错误
  • Lua:“拖动”数组中的元素序列

    我正在尝试创建一个函数 将连续数量的元素 拖动 到数组中的新位置 并限制为数组的当前大小 其他项目应该围绕 拖动 的项目晃动 例如 如果我的数组有 7 个元素 并且我想拖动中间的三个 1 2 3 4 5 6 7 lt keys a b C
  • 如何使用Watin / IE9测试文件下载?

    我正在尝试使用 Watin 2 1 0 针对 IE9 测试文件下载 我使用了问题已接受答案中的建议代码在 IE9 中使用 Watin 下载文件 https stackoverflow com questions 6125285 downlo
  • 在 Hadoop MapReduce 中解析 PDF 文件

    我必须在 Hadoop 的 MapReduce 程序中解析 HDFS 中的 PDF 文件 所以我从 HDFS 获取 PDF 文件为输入分割它必须被解析并发送到 Mapper 类 为了实现这个输入格式我已经经历过这个link http cod
  • 属性错误“模块”对象没有属性“DateField”

    我试图在 Satchmo Django 中扩展管理定义 并在尝试向 ProductOptions 添加 formfield override 时收到错误 属性错误 模块 对象没有属性 DateField from django contri
  • quartz 默认线程数是多少

    我是新来的Quartz 我确实设法弄清楚调度程序配置的默认值是org quartz threadPool threadCount 1 但它没有在任何地方找到这意味着什么 这是否意味着只有一个线程或者有其他 数字 我正在使用quartz sc
  • 如何使用蓝图将 Flasgger 与 Flask 应用程序结合使用?

    我正在使用以下命令将 Swagger UI 添加到我的 Python Flask 应用程序中Flasgger https github com rochacbruno flasgger 互联网上最常见的示例是使用基本 Flask 风格 ap
  • 使用 VS2017 启动 asp.net core 应用程序会创建新的应用程序池

    每次当我在 VS2017 的本地 IIS 下启动 ASP net Core 应用程序的调试器时 都会创建一个新的应用程序池 我希望应用程序在 DefaultAppPool 身份 下保持稳定 而不是创建新的应用程序 这个设置在哪里会影响这个
  • Laravel 查询带有“if”条件?

    我正在尝试使用 Laravel 4 制作高级搜索表单 这是查询 result DB table users ads gt join ads users ads ad id ads id gt orderBy column method gt