#laravel-5.8
#laravel-5.8
Вопрос:
Когда мы должны использовать области видимости в laravel и каковы преимущества?
public function scopePopular($query)
{
return $query->where('votes', '>', 100);
}
Ответ №1:
Он автоматически добавляет дополнительные условия для SQL-запроса для модели (которые необходимы и которые будут применяться ко всей модели).
Экономия вашего времени и усилий вместо того, чтобы включать повторяющийся код здесь и там, чтобы добавлять эти дополнительные условия каждый раз, когда извлекается модель. Это эффективно экономит ваше время, вы также можете обойтись без него, добавив его вручную, где это применимо. это как syntactic sugar
, скажем.
Основным преимуществом является то, что если позже вы захотите обновить условия (например, изменить ваши требования), вы можете легко сделать это в одном месте, вместо того, чтобы просматривать весь код, чтобы найти дополнительные условия и обновить их.
Например, взгляните на эту статью о областях видимости в Laravel
Допустим, например, что вы хотите, чтобы ваша модель удовлетворяла некоторым условиям (для каждого вызова модели, т.Е. Глобальной области видимости). Например updated_at > some timestamp
, И type = some type
. Вместо того, чтобы добавлять эти условия каждый раз, когда вы вызываете свои методы модели, вы добавляете (глобальную) область видимости, которая включает их по умолчанию для каждого вызова. Как уже было сказано, это просто экономит время вместо повторяющегося и подверженного ошибкам кода здесь и там.