laravel查询获取来自同一国家和城市的用户

xkrw2x1b  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(409)

我正在尝试从users表获取用户。我还有一个表user\u details,它存储自定义配置文件字段。user\u details表有四列id、user、user\u register\u field和value。

id    user   user_register_field  value

1     1      gender               Male
2     1      city                 somecity
3     1      country              somecountry
4     2      gender               Female
5     2      city                 Null
6     2      country              somecountry
7     3      gender               Male

用户.php

public function Udetails()
{
    return $this->hasMany('App\UserDetails','user');
}

假设用户id为1的用户已登录&我想向他显示来自用户1所在国家和城市的其他用户。

sd2nnvve

sd2nnvve1#

我想你需要一些 Parameter Grouping 标准

User::whereHas('Udetails',function($query) use ($country, $city){
    $query->where(function ($query) {
            $query->where('user_register_field', '=', 'country')
                  ->where('value', '=', $country);
        })->orWwhere(function ($query) {
            $query->where('user_register_field', '=', 'city')
                  ->where('value', '=', $city);
        });
})->get();
ma8fv8wu

ma8fv8wu2#

就这样做吧:

User::whereHas('Udetails',function($q){
    $q->where('user_register_field','country')
        ->where('value',your_logged_users_country);
})->whereHas('Udetails',function($q){
    $q->where('user_register_field','city')
        ->where('value',your_logged_users_city);
})->get();

相关问题