我有一个用户过滤器,可以按名称,电子邮件和用户类型(管理员或普通用户)过滤
我使用的是雄辩的查询生成器,并且数据库中的字段为tinyint,常规用户的值为0,而管理员的值为1。
当尝试按普通用户(0)进行过滤时,我得到了包括管理员在内的所有用户。当我按管理员筛选时,我得到了管理员。
以某种方式按0进行过滤会返回所有用户类型。
这是我正在使用的查询:
`
* Scope a query to requested filters.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeFilter($query)
{
if(request('usertype')){
$query->where('admin', request('usertype'));
}
return $query->orderBy('name', 'ASC');
}`
有人可以帮忙吗?
答案 0 :(得分:0)
您可以执行intval以确保获得如下所示的整数值,
$query->where('admin','=', intval(request('usertype')));
我希望您在查询结束时使用->get()
来获取数据