Laravel Eloquent 运算符之间如何使用

问题描述 投票:0回答:2

我试图在 Eloquent 和 Laravel 中找到一种优雅的方式来表达

select * from UserTable where Age between X and Y

Eloquent 中是否有 Between 运算符(我找不到)。

到目前为止我得到的最接近的是像这样链接我的查询

$query->where(age, '>=', $ageFrom)
      ->where(age, '<=', $ageTo);

我还发现了 whereRaw 似乎有效

$query->whereRaw('age BETWEEN ' . $ageFrom . ' AND ' . $ageTo . '');

是否有一种实际的雄辩方式(不是原始的)来处理范围?

php sql laravel laravel-4 eloquent
2个回答
148
投票
$query->whereBetween('age', [$ageFrom, $ageTo]);

对于 Laravel 10+ 仍然适用 https://laravel.com/docs/10.x/queries#additional-where-clauses


5
投票

whereBetween
方法验证列的值是否在两个值之间:

$users = DB::table('users')->whereBetween('votes', [1, 100])->get();

whereNotBetween
方法验证列的值是否位于两个值之外:

$users = DB::table('users')->whereNotBetween('votes', [1, 100])->get();

Laravel

© www.soinside.com 2019 - 2024. All rights reserved.