我正在尝试从用户表中获取用户。我有另一个表 user_details ,它存储自定义配置文件字段。 user_details 表有四列 id,user,user_register_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
Users.php
public function Udetails()
{
return $this->hasMany('App\UserDetails','user');
}
假设用户ID为1的用户已登录&我想向他展示来自同一国家和地区的其他用户用户1来自的城市。
答案 0 :(得分:1)
做这样的事情:
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();
答案 1 :(得分:0)
我猜你需要某种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();