为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过关系表列条件查询表

如何通过关系表列条件查询表

PHP
眼眸繁星 2022-05-27 13:10:28
我有模型用户class Users extends Model implements  AuthenticatableContract{    use Authenticatable,HasApiTokens;    protected $primaryKey = 'user_id';    protected $fillable = ['email','password','email_token', 'verified'];    public function user_info()    {        return $this->hasOne('App\Models\UserInfo','user_id');    }}在控制器中,我想查询关系表列 "kind" 等于 1 的所有用户。So Users table has user_info_id(one to one) . User_info has kind_id.我想通过关系表列 kind_id 查询用户。我可以通过 left join 做到这一点。但是我怎么能用关系来做呢?我试过这样但它不起作用$univer_list = Users::with('user_info')->where('is_university',1)            ->where('kind_id',1);
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

您可以使用whereHas基于关系的存在进行查询:


$univer_list = Users::where('is_university', 1)

    ->whereHas('user_info', function ($query) {

        $query->where('kind_id', 1);

    })->get();

只获取与where等于 1有关系的,Users应该命名为。UserUserInfokind_id


查看完整回答
反对 回复 2022-05-27
?
Qyouu

TA贡献1786条经验 获得超11个赞

您可以在with


$univer_list = Users::with(['user_info' => function($q) {

                        $q->where('kind_id', 1);

                    }])->where('is_university', 1)->get();

我假设您is_university存在于users表中,并且您的kind_id列存在于user_info表中。


查看完整回答
反对 回复 2022-05-27
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号