如何按年度过滤laravel 4.2 app中的所有查询结果

Mag*_*mid 5 php model filter laravel-4

我想为所有应用程序查询添加一个过滤器,以获得特定年份的结果.

我将当前年度纳入会议,如下所示:

public function postLogin()
{
    Session::put('currentYear', date("Y"));
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序中有很多控制器.我希望任何模型的查询结果按会话年过滤=> Session :: get('currentYear')

我有很多模特; 例如,我有一条路线可以查看所有用户,教师和学生.

public function getList()
{
    $data['students'] = User::where('group_id', '=', 4)->get();

    return View::make('students.list', $data);
}
Run Code Online (Sandbox Code Playgroud)

我可以放入__constructBaseController过滤所有应用程序查询Session::get('currentYear')吗?

小智 3

我将使用提供所需基本查询的方法创建一个存储库类,例如 function getUserBaseQuery() { return User::where('year', '=', Session::get('currentYear')); }

显然,请确保已currentYear设置 - 并在不运行的情况下返回它get()尚未运行的情况下返回它。

然后每当您进行查询时获取此基本查询,添加更多操作(限制、顺序等)并运行get()

这样,您就可以使用过滤器进行访问,而不会造成一些全局潜在损害,并通过选择基本查询来了解运行的过滤器。

这对你来说有意义吗?