我想为所有应用程序查询添加一个过滤器,以获得特定年份的结果。
我将今年的情况放入会议中,如下所示:
public function postLogin()
{
Session::put('currentYear', date("Y"));
}
我的应用程序中有许多控制器。我希望任何模型的查询结果按会话年份过滤 => 会话::get('当前年份'(
我有很多模型;例如,我有一条查看所有用户、教师和学生的路线。
public function getList()
{
$data['students'] = User::where('group_id', '=', 4)->get();
return View::make('students.list', $data);
}
我可以在 BaseController 中放入 __construct
以按Session::get('currentYear')
过滤所有应用程序查询吗?
我会创建一个存储库类,其中包含提供所需基本查询的方法,例如 function getUserBaseQuery() {
return User::where('year', '=', Session::get('currentYear'));
}
显然,请确保设置currentYear
- 并在尚未运行get()
的情况下返回此内容。
然后,每当您进行查询时,都会获取此基本查询,添加更多操作(限制,订单等(并运行get()
。
这样,您可以使用筛选器进行访问,而不会造成一些全局潜在损害,并通过选择该基本查询来了解运行哪些筛选器。
这对你有意义吗?