How can I write following or similar kind of queries using Eloquent?

SELECT * FROM a_table WHERE (a LIKE %keyword% OR b LIKE %keyword%) AND c = 1 AND d = 5

I couldn't combine AND/OR in the way I wanted by chaining where & or_where functions.

推荐答案

您可以嵌套WHERE子句:http://laravel.com/docs/database/fluent#nested-where

Model::where(function($query)
{
    $query->where('a', 'like', 'keyword');
    $query->or_where('b', 'like', 'keyword');
})
->where('c', '=', '1');

这将产生:SELECT * FROM models WHERE (a LIKE %keyword% OR b LIKE %keyword%) AND c = 1

Laravel相关问答推荐

如何使用PHP版本8.2.6安装beyondcode/laravel-websockets软件包?

单个对象的Eloquent 计数是错误的

(1/1) ErrorException ReflectionFunction::__construct() ex

Laravel - 出于某种原因,max 打破了我的查询

在 laravel 的集合中找到?例子

Laravel Session 总是改变 Laravel 5.4 中的每个刷新/请求

Laravel lockforupdate(悲观锁)

如何从 laravel 中的现有数据库创建迁移

Laravel Eloquent 在子查询中有两个WHERE NOT IN

PHP Laravel:如何获取客户端浏览器/设备?

测试指向外部站点的重定向链接

如果 Laravel 中的值不为空,如何验证输入字段

Laravel 5 Carbon 全局语言环境

使用 Laravel 使用 2 个磁盘复制文件

Composer RuntimeException - 无法加载软件包 mews/purifier

Laravel 获取文件内容

如何在 vs 代码中自动导入 laravel 类

无法在控制器的构造函数上调用 Auth::user()

如何在 Laravel 5 中验证 RESTful API?

在 Laravel 中判断会话超时