小编You*_* K.的帖子

Laravel:使用不同的Wheres多次查询

为了提高效率,我一直在努力解决这个问题.从逻辑上讲,这应该有效.但是,一旦我调用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为这两个集合存储两个不同的变量,但结果相同.

有什么建议?

我可以两次做同样的事情,但效率低下(我认为).

提前致谢!

laravel eloquent laravel-4

7
推荐指数
1
解决办法
1472
查看次数

标签 统计

eloquent ×1

laravel ×1

laravel-4 ×1