Laravel-查询问题的位置

Laravel-查询问题的位置,laravel,eloquent,Laravel,Eloquent,假设我有一个表User,其中有一列名为gender,和age。说我想得到所有18岁的女人。在文档中,它说我可以 public function scopeGender($query, $gender) { return $query->where('gender', '=', $gender); } public function scopeAge($query, $age) { return $query->where('age', '=', $age); }

假设我有一个表
User
,其中有一列名为
gender
,和
age
。说我想得到所有18岁的女人。在文档中,它说我可以

public function scopeGender($query, $gender) {
    return $query->where('gender', '=', $gender);
}

public function scopeAge($query, $age) {
    return $query->where('age', '=', $age);
}
然后从
User::gender('F')->age(18)->get()获取我的结果

这个很好用。但文档中也包含此实现:

public function scopeWoman($query) {
    return $query->whereGender('F');
}
我想对
age
做同样的事情,使用:

public function scopeAge($query, $age) {
    return $query->whereAge($age);
}
但现在我明白了

Illumb\Database\Query\Builder::where()缺少参数2


为什么?

change您尝试将“scopeAge”更改为“scopeOther”,然后运行->other(18)-这样行吗?我想知道scopeAge()和Where()是否冲突…?不,没有。我仍然会收到相同的错误。奇怪的是,如果我使用
Where id($id)
它确实与id一起工作。