request-map

Java Web参数处理
Map map = new HashMap();
//request-->map
Map requestParamsMap=request.getParameterMap();
Set key = requestParamsMap.keySet();
for (Object obj : key.toArray()) {
String parakey = obj.toString();
String paravalue = ((String[]) requestParamsMap.get(obj))[0]
.toString();
map.put(parakey, paravalue);
}
public function processLivestockList(Request $request) { try{ $list = DB::table('factory_carcass as a') ->leftJoin('trace_archives_enter_factory as e','a.earID','=','e.earID') ->leftJoin('trace_archives_acid_elimination as ac','a.earID','=','ac.earID') ->leftJoin('process_method as m','a.processMethodID','=','m.processMethodID') ->leftJoin('livestock_archives as la','a.earID','=','la.earID') ->select('a.*','e.enterTime as enterTime', 'ac.acidEliminationTime as acidEliminationTime', 'm.processMethodName as processMethodName','la.entryPhoto as entryPhoto') //->distinct() ->where('a.del','0') ->orderBy('a.addTime','desc'); //精确匹配factoryID if ($request->filled('factoryID')) { $list->where('a.factoryID', (int)$request->factoryID); } //根据加工方式搜索 if ($request->has('processMethodID') && $request->processMethodID) { $list->where('a.processMethodID', $request->processMethodID); } //根据耳标号搜索 if ($request->has('earID') && $request->earID) { $list->where('a.earID','like','%' . $request->earID . '%'); } //根据年份搜索(添加时间) if ($request->has('year') && $request->year) { $list->whereYear('a.addTime', $request->year); } //根据年份搜索(称重时间) if ($request->has('weightYear') && $request->weightYear) { $list->whereYear('a.weightTime', $request->weightYear); } $perPage = (int)$request->input('limit',10); $paginator = $list->paginate($perPage); $items = collect($paginator->items())->map(function ($item) { $item->carcassPhoto = $item->carcassPhoto ? explode(',', $item->carcassPhoto) : []; $item->entryPhoto = $item->entryPhoto ? explode(',', $item->entryPhoto) : []; return $item; }); return response()->json([ 'code' => 200, 'data' => [ 'list' => $items, 'total' => $paginator->total() ] ]); }catch(Exception $e){ return response()->json([ 'code' => 403, 'message' => $e->getMessage() ]); } }把这个按照添加时间搜索由年份变成日期
最新发布
09-09
要将代码中的年份搜索(`weightYear`)更改为日期搜索,你需要修改查询条件,从按年份过滤改为按日期范围过滤。以下是修改后的代码片段: ```php public function processLivestockList(Request $request) { try { $list = DB::table('factory_carcass as a') ->leftJoin('trace_archives_enter_factory as e', 'a.earID', '=', 'e.earID') ->leftJoin('trace_archives_acid_elimination as ac', 'a.earID', '=', 'ac.earID') ->leftJoin('process_method as m', 'a.processMethodID', '=', 'm.processMethodID') ->leftJoin('livestock_archives as la', 'a.earID', '=', 'la.earID') ->select('a.*', 'e.enterTime as enterTime', 'ac.acidEliminationTime as acidEliminationTime', 'm.processMethodName as processMethodName', 'la.entryPhoto as entryPhoto') ->where('a.del', '0') ->orderBy('a.addTime', 'desc'); // 精确匹配factoryID if ($request->filled('factoryID')) { $list->where('a.factoryID', (int)$request->factoryID); } // 根据加工方式搜索 if ($request->has('processMethodID') && $request->processMethodID) { $list->where('a.processMethodID', $request->processMethodID); } // 根据耳标号搜索 if ($request->has('earID') && $request->earID) { $list->where('a.earID', 'like', '%' . $request->earID . '%'); } // 根据年份搜索(添加时间) if ($request->has('year') && $request->year) { $list->whereYear('a.addTime', $request->year); } // 根据日期搜索(称重时间) if ($request->has('weightDate') && $request->weightDate) { $list->whereDate('a.weightTime', $request->weightDate); } $perPage = (int)$request->input('limit', 10); $paginator = $list->paginate($perPage); $items = collect($paginator->items())->map(function ($item) { $item->carcassPhoto = $item->carcassPhoto ? explode(',', $item->carcassPhoto) : []; $item->entryPhoto = $item->entryPhoto ? explode(',', $item->entryPhoto) : []; return $item; }); return response()->json([ 'code' => 200, 'data' => [ 'list' => $items, 'total' => $paginator->total() ] ]); } catch (Exception $e) { return response()->json([ 'code' => 403, 'message' => $e->getMessage() ]); } } ``` ### 修改说明: 1. **参数名更改**:将 `weightYear` 改为 `weightDate`,以反映日期搜索的意图。 2. **查询条件更改**:使用 `whereDate` 方法来按日期过滤 `weightTime` 字段。 - `whereDate('a.weightTime', $request->weightDate)` 会匹配 `weightTime` 等于指定日期的记录。 ### 其他可能的日期搜索方式: 如果你需要按日期范围搜索(例如,开始日期和结束日期),可以进一步修改为: ```php // 根据日期范围搜索(称重时间) if ($request->has('startDate') && $request->startDate && $request->has('endDate') && $request->endDate) { $list->whereBetween('a.weightTime', [$request->startDate, $request->endDate]); } ``` 这样,前端可以传递 `startDate` 和 `endDate` 参数来筛选特定日期范围内的记录。 ### 注意事项: 1. 确保前端传递的日期格式与数据库中的 `weightTime` 字段格式兼容(例如,`YYYY-MM-DD`)。 2. 如果需要支持时间部分,可以使用 `where` 方法代替 `whereDate`: ```php $list->where('a.weightTime', 'like', $request->weightDate . '%'); ``` 这会匹配指定日期的所有时间记录。 希望这能满足你的需求!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值