Laravel eloquent 多个搜索过滤器
Laravel eloquent multiple search filters
给定下面的查询,如何添加更多 where/add (mysql) 字段条件,最多 4 个字段?
$query = Profile::select('field1', field2', 'field3, 'field4', DB::raw('SUM(likes.like) AS total'))
->leftJoin('users', 'users.id', '=', 'profiles.user_id')
->leftJoin('likes', 'likes.profile_id', '=', 'profiles.user_id')
->whereNotNull('users.id')
->groupBy('users.id')
->orderBy('users.last_login_at', 'DESC')
->get();
我试过如下添加,结果出现 405 错误:
$query = Profile::select('field1', field2', 'field3, 'field4', DB::raw('SUM(likes.like) AS total'))
->leftJoin('users', 'users.id', '=', 'profiles.user_id')
->leftJoin('likes', 'likes.profile_id', '=', 'profiles.user_id')
->whereNotNull('users.id');
if ($field1 != 'condition') {
$query->where('profiles.field1', $field1)
}
$query->groupBy('users.id')
->orderBy('users.last_login_at', 'DESC')
->get();
您的 select 语句有误。
$query = Profile::select('field1', 'field2', 'field3', 'field4', "DB::raw('SUM(likes.like) AS total')")
->leftJoin('users', 'users.id', '=', 'profiles.user_id')
->leftJoin('likes', 'likes.profile_id', '=', 'profiles.user_id')
->where('users.id', "!=", '');
if ($field1 != 'condition') {
$query = $query->where('profiles.field1', $field1)
}
$query = $query->groupBy('users.id')
->orderBy('users.last_login_at', 'DESC')
->get();
将附加值分配给同一个变量$query
给定下面的查询,如何添加更多 where/add (mysql) 字段条件,最多 4 个字段?
$query = Profile::select('field1', field2', 'field3, 'field4', DB::raw('SUM(likes.like) AS total'))
->leftJoin('users', 'users.id', '=', 'profiles.user_id')
->leftJoin('likes', 'likes.profile_id', '=', 'profiles.user_id')
->whereNotNull('users.id')
->groupBy('users.id')
->orderBy('users.last_login_at', 'DESC')
->get();
我试过如下添加,结果出现 405 错误:
$query = Profile::select('field1', field2', 'field3, 'field4', DB::raw('SUM(likes.like) AS total'))
->leftJoin('users', 'users.id', '=', 'profiles.user_id')
->leftJoin('likes', 'likes.profile_id', '=', 'profiles.user_id')
->whereNotNull('users.id');
if ($field1 != 'condition') {
$query->where('profiles.field1', $field1)
}
$query->groupBy('users.id')
->orderBy('users.last_login_at', 'DESC')
->get();
您的 select 语句有误。
$query = Profile::select('field1', 'field2', 'field3', 'field4', "DB::raw('SUM(likes.like) AS total')")
->leftJoin('users', 'users.id', '=', 'profiles.user_id')
->leftJoin('likes', 'likes.profile_id', '=', 'profiles.user_id')
->where('users.id', "!=", '');
if ($field1 != 'condition') {
$query = $query->where('profiles.field1', $field1)
}
$query = $query->groupBy('users.id')
->orderBy('users.last_login_at', 'DESC')
->get();
将附加值分配给同一个变量$query