我和Laravel 5.1在一起,我有这个:
$q = Model::where('tipo','<>','');
然后我做了:
$res1 = $q->where('value','>',1)->get();
$res2 = $q->where('value','>',2)->get();
然后$res2
继承了$res1
的位置?
可能是什么问题??
答案 0 :(得分:3)
您应该检查 Laravel查询范围
查询范围将允许您轻松地重复使用查询。在模型中添加查询范围功能。只需在模型方法前加上范围:
在模型中:
public function scopeFirstCondition($query)
{
return $query->where('value','>',1);
}
public function scopeSecondCondition($query)
{
return $query->where('value','>',2);
}
然后你可以同样获取值:
$res1 = Model::firstCondition()->get();
$res2 = Model::secondCondition()->get();
如果需要,您也可以将它们组合在一起:
$result = Model::firstCondition()->secondCondition()->get();
希望这是有帮助的。