У меня есть модель с именем «Rate» и связанный контроллер с именем «RateController». Если вы хотите сделать пользовательский запрос в модели Rate, мы могли бы использовать локальную область или функцию stati c, например:
, используя функцию stati c в модели Rate:
public static function avgerage($type, $id)
{
return static::where('rateble_type', $type)
->where('rateble_id', $id)
->avg('star');
}
используя локальную область видимости в модели Rate:
public function scopeAverageRate($type, $id, $query)
{
return $query->where('rateble_type', $type)
->where('rateble_id', $id)
->avg('star');
}
и, наконец, мы вызываем один из вышеперечисленных методов в контроллере.
Вопрос в том, какой метод лучше всего подходит? использование локальной области или определение функции stati c в модели?
Спасибо.