使用 Laravel 查询构建器重写 MYSQL 查询
Rewrite MYSQL query using Laravel query builder
我正在尝试使用 Laravel 查询构建器
重写 MYSQL 查询
这就是查询
DB::select("SELECT * FROM accomodation WHERE id NOT IN
(SELECT accomodation_id FROM bookings
WHERE (`checkin` <= '$request->in' AND `checkout` >= '$request->out'));");
这就是我到目前为止所做的
Accommodation::whereNotIN('id', function($q)
{
$q->select('accomodation_id')
->from('bookings')
->where('checkin', '<=', '$request->out')
->where ('checkout', '>=', '$request->in');
})
->get();
问题是第一个查询给了我预期的结果,但第二个不是
有人可以指出我做错了什么吗?
我想你打错了。查看 $request->in
和 $request->out
。你可能想翻转它。以及为什么使用 '$request->in'
而不是 $request->in
。它将解析为字符串而不是值
您没有use
。例如 php Accommodation::whereNotIN('id', function($q) use ($request)
并且您需要根据请求翻转条件 ;)
我正在尝试使用 Laravel 查询构建器
重写 MYSQL 查询这就是查询
DB::select("SELECT * FROM accomodation WHERE id NOT IN
(SELECT accomodation_id FROM bookings
WHERE (`checkin` <= '$request->in' AND `checkout` >= '$request->out'));");
这就是我到目前为止所做的
Accommodation::whereNotIN('id', function($q)
{
$q->select('accomodation_id')
->from('bookings')
->where('checkin', '<=', '$request->out')
->where ('checkout', '>=', '$request->in');
})
->get();
问题是第一个查询给了我预期的结果,但第二个不是
有人可以指出我做错了什么吗?
我想你打错了。查看 $request->in
和 $request->out
。你可能想翻转它。以及为什么使用 '$request->in'
而不是 $request->in
。它将解析为字符串而不是值
您没有use
。例如 php Accommodation::whereNotIN('id', function($q) use ($request)
并且您需要根据请求翻转条件 ;)