【发布时间】:2016-11-20 19:26:47
【问题描述】:
Laravel 雄辩的查询是什么:
select * from `jobs` where (
400000 between min_salary and max_salary
or
600000 between min_salary and max_salary
);
我尝试了以下雄辩的查询,它将整数封装为字符串
$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();
我尝试了以下雄辩的查询按预期工作,但我已直接对查询进行硬编码(不安全)
$min = 400000;
$max = 600000;
Job::whereRaw(
$min.' between min_salary and max_salary
or
'.$max.' between min_salary and max_salary'
)->get();
【问题讨论】: