gpt4 book ai didi

mysql - 拉维尔 5 : whereRaw escapes integer to string

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:41 25 4
gpt4 key购买 nike

Laravel 对此的 Eloquent 查询是什么:

select * from `jobs` where (
400000 between min_salary and max_salary
or
600000 between min_salary and max_salary
);

我尝试了以下 Eloquent 查询,它将整数封装为字符串

$min = 400000;
$max = 600000;
Job::whereRaw('
? between min_salary and max_salary
or
? between min_salary and max_salary',
[$min,$max]
)->get();

还尝试了 Casting 和 DB::Raw,所有选项都没有按预期工作。

protected $casts = [
'min_salary' => 'integer',
'max_salary' => 'integer',
];

$min = 400000;
$max = 600000;
Job::whereRaw('
? between min_salary and max_salary
or
? between min_salary and max_salary',
[DB::Raw($min),DB::Raw($max)]
)->get();

我尝试了下面的 Eloquent 查询,但我直接对查询进行了硬编码(不安全)

$min = 400000;
$max = 600000;
Job::whereRaw(
$min.' between min_salary and max_salary
or
'.$max.' between min_salary and max_salary'
)->get();

最佳答案

试试这个:

Job::where(function($query){
$query->where('min_salary','<',400000);
$query->where('max_salary','>',400000);
})->orWhere(function($query){
$query->where('min_salary','<',600000);
$query->where('max_salary','>',600000);
})->get();

关于mysql - 拉维尔 5 : whereRaw escapes integer to string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com