为了提高效率,我一直在努力解决这个问题.从逻辑上讲,这应该有效.但是,一旦我调用count()或get(),第二次使用就不起作用了.如果您看到以下代码,那么您将会清楚:
$query = Address::where('area_id',$area->id);
if($order === 'house_no')
$query->orderBy('house_no','ASC');
$query->join('members as m','addresses.member_id','=','m.id');
if($order === 'reg')
$query->orderBy('batch','ASC')->orderBy('reg','ASC');
if($types != '')
$query->whereIn('m.type', explode(',', $types));
$male = $query->where('m.gender','male')->get();
$female = $query->where('m.gender','female')->get(); //this does not work
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,$query在两者中调用变量$male并且$female应该在逻辑上工作.但我只得到了第一次调用的结果,似乎一旦count()和get()被调用时,$query变量将不再做别的了.
我也尝试$query为这两个集合存储两个不同的变量,但结果相同.
有什么建议?
我可以两次做同样的事情,但效率低下(我认为).
提前致谢!