Php Laravel查询以获取来自同一国家和城市的用户
我正在尝试从users表中获取用户。我有另一个存储自定义配置文件字段的表user_details。user\u details表有四列id、user、user\u register\u field和valuePhp Laravel查询以获取来自同一国家和城市的用户,php,mysql,laravel,laravel-5.2,Php,Mysql,Laravel,Laravel 5.2,我正在尝试从users表中获取用户。我有另一个存储自定义配置文件字段的表user_details。user\u details表有四列id、user、user\u register\u field和value 假设用户id为1的用户已登录&我想向他显示来自用户1所在国家和城市的其他用户。只需执行以下操作: User::whereHas('Udetails',function($q){ $q->where('user_register_field','country')
假设用户id为1的用户已登录&我想向他显示来自用户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();
我想你需要一些标准
非常感谢你的回答。我以前写过这样的代码。但问题是,一些用户在他们的配置文件中并没有选择国家,在用户详细信息表中并没有任何相关行,而一些城市也存在同样的问题。有什么解决办法吗?
public function Udetails()
{
return $this->hasMany('App\UserDetails','user');
}
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();
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();