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

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

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

  1. id user user_register_field value
  2. 1 1 gender Male
  3. 2 1 city somecity
  4. 3 1 country somecountry
  5. 4 2 gender Female
  6. 5 2 city Null
  7. 6 2 country somecountry
  8. 7 3 gender Male

用户.php

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

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

sd2nnvve

sd2nnvve1#

我想你需要一些 Parameter Grouping 标准

  1. User::whereHas('Udetails',function($query) use ($country, $city){
  2. $query->where(function ($query) {
  3. $query->where('user_register_field', '=', 'country')
  4. ->where('value', '=', $country);
  5. })->orWwhere(function ($query) {
  6. $query->where('user_register_field', '=', 'city')
  7. ->where('value', '=', $city);
  8. });
  9. })->get();
ma8fv8wu

ma8fv8wu2#

就这样做吧:

  1. User::whereHas('Udetails',function($q){
  2. $q->where('user_register_field','country')
  3. ->where('value',your_logged_users_country);
  4. })->whereHas('Udetails',function($q){
  5. $q->where('user_register_field','city')
  6. ->where('value',your_logged_users_city);
  7. })->get();

相关问题