Fai*_*med 2 php laravel eloquent
我很难解决这个错误。
我的模型:
用户模型:
class User extends Model{
    public function requests()
    {
        return $this->hasMany('App\Models\TeamRequest','requested_user_id');
    }
}
团队请求模型:
class TeamRequest extends Model {
    public function requested_user()
    {
        return $this->belongsTo('App\Models\User', 'requested_user_id');
    }
}
现在,我正在尝试这个查询:
UserModel::whereHas('requests',function($query) use ($team_id){
            $query->where('team_id',$team_id)
                    ->get();
        });
而且,我收到一个错误:
未找到列:“where 子句”中的 1054 列“users.id”未知(SQL:select count(*) from
team_requestswhereteam_requests.requested_user_id=users.id)
为什么我收到这个错误?
架构:
用户表
主键 - id
varchar - 电子邮件
varchar - 密码
team_requests 表
主键 - id
整数 - requests_user_id
我还有其他专栏,但我相信它们没有效果。
你的问题是你在get()传递给你的whereHas(). 闭包用于向子查询添加约束,该子查询将用于确定您的用户是否有请求。您只应该向闭包内的查询添加约束,而不想实际执行该查询。如果您在闭包内执行查询,您将收到一个错误(如您所见),因为它应该是一个子查询,并且没有正确执行所需的所有信息。
你的代码应该是:
UserModel::whereHas('requests', function ($query) use ($team_id) {
    $query->where('team_id', $team_id);
});
| 归档时间: | 
 | 
| 查看次数: | 2689 次 | 
| 最近记录: |