Php 根据关系的where条件检索所有用户
我正在尝试为我的用户建立一个搜索系统 第一部分很简单,因为我搜索的所有信息都在同一个表中 第二部分涉及根据提供的IP地址搜索用户。为此,我使用:Php 根据关系的where条件检索所有用户,php,laravel,eloquent,laravel-5.1,Php,Laravel,Eloquent,Laravel 5.1,我正在尝试为我的用户建立一个搜索系统 第一部分很简单,因为我搜索的所有信息都在同一个表中 第二部分涉及根据提供的IP地址搜索用户。为此,我使用: $users = User::with(array('login' => function($q){ $q->where('ip_address', Input::get('ipaddress')); }))->paginate(10); 但是,这将返回所有用户,而不仅仅是那些
$users = User::with(array('login' => function($q){
$q->where('ip_address', Input::get('ipaddress'));
}))->paginate(10);
但是,这将返回所有用户,而不仅仅是那些满足IP地址要求的用户。我哪里做错了?还是有更简单的方法
$users = User::whereHas('login', function ($q) {
$q -> where('ip_address', Input::get('ipaddress'));
}) -> paginate(10);
试试看 你想要的是一个
内部连接
我刚刚找到了whereHas
并找到了它。但我就是这样做的!事实并非如此。当您将与()一起使用时,
-您的条件返回了所有用户,包括登录
,如果登录关系不符合该条件,它将像空
实体一样被包括在内。但是,当您使用where has
时,它会根据关系条件过滤用户