laravel - 在 Laravel 中使用日、月或年作为 MYSQL 查询过滤器
问题描述
在我的代码中,我通过接受用户的月份和年份输入来查询数据库。
我已经尝试用普通的 PHP 方式和我可以在网上找到的其他方式编写它,但似乎没有一个有效。这是我目前使用的代码
$salesmonth = $request->input('mn');
$salesyear = $request->input('yr');
$id = Auth::user()->id;
$comm = \DB::table('bakerysales')
->where([
['customer_id', '=', $id], [MONTH('sales_date'), '=', $salesmonth], [YEAR('sales_date
'), '=', $salesyear]
])
->get();
return view::make('showCommission')->with('comm', $comm);
我希望查询从与用户选择的月份和年份匹配的行中返回数据
解决方案
Laravel 附带了一些不同的where 子句来处理日期,例如
whereDate
/ whereMonth
/ whereDay
/ whereYear
。
这意味着您的控制器方法可能类似于:
$comm = \DB::table('bakerysales')
->where('customer_id', auth()->id())
->whereMonth('sales_date', $request->input('mn'))
->whereYear('sales_date', $request->input('yr'))
->get();
return view('showCommission', compact('comm'));
推荐阅读
- vue.js - 如何进一步加快构建 vite watch 的速度?
- python - 将两个字典与自定义更新合并
- c - 按位移位与操作数大小(RHEL7 64 位)
- opentracing - jaegar 收集器可以从 otel 收集器接收通过 otlp 协议传入的跨度和跟踪吗?
- python - 获取命令行参数并使用 pytest 将其分配给全局变量
- flutter - 如何在自然界中使渐变颜色可变
- python - 在 __init__ 文件中运行时找到模块,但在我打包它并在包中使用它时找不到
- python - pytest django 从 yaml 文件加载数据库数据
- reactjs - d3中的纠结树图
- ignite - 点燃缓存事务回滚