Laravel Query Builder继承其他var的位置

时间:2015-11-11 11:38:09

标签: laravel-5.1

我和Laravel 5.1在一起,我有这个:

$q = Model::where('tipo','<>','');
然后我做了:

$res1 = $q->where('value','>',1)->get();
$res2 = $q->where('value','>',2)->get();

然后$res2继承了$res1的位置?

可能是什么问题??

1 个答案:

答案 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();

文档:Laravel Query Scope

希望这是有帮助的。