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

标签 php filter laravel-4 model

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

我将当前年份放入 session 中,如下所示:

public function postLogin()
{
    Session::put('currentYear', date("Y"));
}

我的应用程序中有很多 Controller 。我希望任何模型的查询结果按 session 年份过滤 => Session::get('currentYear')

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

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

    return View::make('students.list', $data);
}

我可以将 __construct 放在 BaseController 中以通过 Session::get('currentYear') 过滤所有应用查询吗?

最佳答案

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

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

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

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

这对你来说有意义吗?

关于php - 如何按年份过滤laravel 4.2 app中的所有查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43997517/

相关文章:

php - mysql查询优化问题

c# - 在 ListView 中过滤数据 [mvvm]

android - 卡尔曼滤波器 : how to use it with no "state transition model"?

php - Laravel 用户事件数据库记录器

routes - laravel 抛出 MethodNotAllowedHttpException

php - 拉维尔 4 : how to write the correct nested controller for nested resource?

php - Eloquent 外部 Laravel 将获取模式更改为 PDO::FETCH_ASSOC

php - 如何使用php删除单行

java - 正则表达式查找单词Java不区分大小写

php - DateTime 类与原生 PHP 日期函数