Php Laravel 6:如何在关系中添加多个where CALUSE
我正在尝试使用关系获取实体的用户Php Laravel 6:如何在关系中添加多个where CALUSE,php,laravel,relationship,where-clause,laravel-6,Php,Laravel,Relationship,Where Clause,Laravel 6,我正在尝试使用关系获取实体的用户 $users = $entity->users()->paginate(20); 但是现在我想根据发送到API的参数运行多个where条件,所以如果我这样做 $users = $entity->users(); //$users->where($where_array) $users->paginate(20); 我出了内存错误。它首先获取所有用户,然后尝试分页(在where condition中注释),因此如何将此查询拆分为多
$users = $entity->users()->paginate(20);
但是现在我想根据发送到API的参数运行多个where条件,所以如果我这样做
$users = $entity->users();
//$users->where($where_array)
$users->paginate(20);
我出了内存错误。它首先获取所有用户,然后尝试分页(在where condition中注释),因此如何将此查询拆分为多行,并在最后运行它,而不使用DB
query
示例我想做什么,但取决于发送的参数而不是固定参数
$user->posts()
->where('active', 1)
->orWhere('votes', '>=', 100)
->get();
所以我查一下
if(!empty($request->first_name)){
->where('first_name', 'like', '%'.$request->first_name.'%')
}
等等。我试过这个
$where = "";
$like_parameters = array(
'first_name', 'last_name', 'email', 'phone'
);
foreach ($like_parameters as $parameter){
if(isset($request->$parameter) &&!empty($request->$parameter)){
$where .= "->where('$request->$parameter', 'like', '%'.$request->$parameter.'%')";
}
}
$users = $entity->users().$where->paginate($per_page);
我得到了对字符串上的成员函数paginate()的
调用,因此我想将$where
绑定到查询,但不是作为字符串,而是作为查询本身的一部分。只要不使用(get,find…)从数据库获取结果,就可以控制查询生成器并添加许多“where”
当您设置所有条件并根据需要构建查询时,您可以获取结果:
$results=$query->get();
只要不使用(get,find…)从数据库获取结果,就可以控制查询生成器并添加许多“where”
当您设置所有条件并根据需要构建查询时,您可以获取结果:
$results=$query->get();