如何在 laravel 5 中编写此查询
How to write this query in laravel 5
我在 laravel 5.1、
中编写此查询时遇到困难
select * from `host_requests` where `host_id` = 5 and (`email` LIKE "%v%" or `request_url` LIKE "%v%")
此查询的目的是获取与 host_id = 5 关联的记录,电子邮件和 request_url 也是可选的,如果它们设置了则应使用 LIKE 子句。
我在 laravel 中这样写查询
$searchname = "v";
$hostid = "5";
$data = HostRequest::where('email', 'LIKE', '%' . $searchname . '%')
->where('host_id', $hostid)
->orwhere('request_url', 'LIKE', '%' . $searchname . '%')
->latest('id')
->paginate($size);
它正在获取所有也不与 host_id = 5 关联的记录。
非常感谢任何帮助..谢谢
你应该像这样使用 where()
闭包:
$data = HostRequest::where('host_id', $hostid)
->where(function($q) use($searchname) {
$q->where('email', 'like', '%'.$searchname.'%')
->orWhere('request_url', 'like', '%'.$searchname.'%');
})->orderBy('id', 'desc')
->paginate($size);
试试这个代码:
$data = HostRequest::where(function ($query) use ($searchname) {
$query->orwhere('email', 'like', '%'.$searchname.'%')
->orWhere('request_url', 'like', '%'.$searchname.'%');
})
->where('host_id', $hostid)
->latest('host_id')
->paginate($size);
我在 laravel 5.1、
中编写此查询时遇到困难select * from `host_requests` where `host_id` = 5 and (`email` LIKE "%v%" or `request_url` LIKE "%v%")
此查询的目的是获取与 host_id = 5 关联的记录,电子邮件和 request_url 也是可选的,如果它们设置了则应使用 LIKE 子句。 我在 laravel 中这样写查询
$searchname = "v";
$hostid = "5";
$data = HostRequest::where('email', 'LIKE', '%' . $searchname . '%')
->where('host_id', $hostid)
->orwhere('request_url', 'LIKE', '%' . $searchname . '%')
->latest('id')
->paginate($size);
它正在获取所有也不与 host_id = 5 关联的记录。
非常感谢任何帮助..谢谢
你应该像这样使用 where()
闭包:
$data = HostRequest::where('host_id', $hostid)
->where(function($q) use($searchname) {
$q->where('email', 'like', '%'.$searchname.'%')
->orWhere('request_url', 'like', '%'.$searchname.'%');
})->orderBy('id', 'desc')
->paginate($size);
试试这个代码:
$data = HostRequest::where(function ($query) use ($searchname) {
$query->orwhere('email', 'like', '%'.$searchname.'%')
->orWhere('request_url', 'like', '%'.$searchname.'%');
})
->where('host_id', $hostid)
->latest('host_id')
->paginate($size);