laravel中的作用域是什么,使用它的利弊是什么?

时间:2019-04-17 06:32:55

标签: laravel-5.8

我们什么时候应该在laravel中使用作用域?有什么优势?

public function scopePopular($query)
    {
        return $query->where('votes', '>', 100);
    }

1 个答案:

答案 0 :(得分:1)

它会自动为模型的SQL查询添加额外的条件(这些条件是必需的,并将在整个模型中应用)。

为您节省时间和精力,而不是在各处添加重复的代码,以在每次获取模型时添加这些额外条件。它有效地节省了您的时间,您也可以通过在适当的地方手动添加它而无需创建它。就像syntactic sugar可以说。

主要优势是,如果您以后想要更新条件(例如,需求变更),则可以轻松地在一个地方完成,而无需浏览整个代码< / strong>查找额外条件并进行更新。

例如看一下at this article about scopes in Laravel

例如,假设您希望模型满足某些条件(对于每个模型调用,即全局范围)。例如updated_at > some timestamptype = some type。不必在每次调用模型方法时都添加这些条件,而是添加一个(全局)作用域,默认情况下,每次调用都将其包括在内。就像说的那样,它只是节省时间,而不是到处都是重复的且容易出错的代码。