tma*_*314 1 php laravel eloquent
我正在尝试使用eloquent搜索两个可选表:
$users = User::where('ProfileType', '=', 2)
->where(function($query) {
$query->where('BandName', 'LIKE', "%$artist%");
$query->or_where('Genre', 'LIKE', "%$genre%");
})->get();
Run Code Online (Sandbox Code Playgroud)
当用户执行空搜索时,这适用于返回所有结果,但我不确定如何调整此值以在存在时搜索bandname,反之亦然.
vFr*_*sop 10
只是为了解释下面的答案会发生什么:
Eloquent在这里做了一件棘手的事情:当你调用User::where(...)它时,返回一个Database\Query对象.这与DB::table('users')->where(...)构建SQL查询的可链接对象基本相同.
所以有:
// Instantiates a Query object
$query = User::where('ProfileType', '=', '2');
$query->where(function($query) {
// Adds a clause to the query
if ($artist = Input::get('artist')) {
$query->where_nested('BandName', 'LIKE', "%$artist%", 'OR');
}
// And another
if ($genre = Input::get('genre')) {
$query->where_nested('Genre', 'LIKE', "%$genre%", 'OR');
}
});
// Executes the query and fetches it's results
$users = $query->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7174 次 |
| 最近记录: |