代码之家  ›  专栏  ›  技术社区  ›  Tartar

Laravel:在模型类中实现方法的最佳方法是什么

  •  1
  • Tartar  · 技术社区  · 7 年前

    Game

    public static function search($season, $week)
    {
         $filteredGames = Game::with('season', 'week', 'homeTeam', 'awayTeam')
            ->when($season != null, function ($q) {
                return $q->where('season_id', request('season'));
            })->when($week != null, function ($q) {
                return $q->where('week_id', request('week'));
            })
            ->paginate(15);
    
           return $filteredGames;
    }
    

    在控制器中使用它,就像这样

    $games = Game::search(request('season'), request('week'));
    

    我想了解在设计模式和可靠原则方面,使用静态方法是否是实现此类功能的最佳方式。

    任何帮助都将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Tartar    7 年前

    public function scopeOfFilter($query, $season, $week)
    {
        return $query->with('season', 'week', 'homeTeam', 'awayTeam')
            ->when($season != null, function ($q) {
                return $q->where('season_id', request('season'));
            })->when($week != null, function ($q) {
                return $q->where('week_id', request('week'));
            })
            ->paginate(10);
    }
    
    推荐文章