Laravel中如何检测URL中的size[eq]参数是否存在?
解决Laravel中检测
size[eq]请求参数返回false的问题 当URL中包含size[eq]=200这类参数时,Laravel会自动将其解析为数组格式的请求参数——$request->size是一个包含eq键的数组,而非把size[eq]作为独立参数名,这就是直接调用$request->has("size[eq]")返回false的原因。
你可以通过以下几种方式正确检测和获取该参数:
使用点语法访问数组参数:
public function index(Request $request) { // 检测size数组中是否存在eq键 dd($request->has('size.eq')); // 获取size[eq]对应的值 $sizeEq = $request->input('size.eq'); }先获取
size数组再检查键的存在性:public function index(Request $request) { // 方式1:用isset直接检查数组键 dd(isset($request->size['eq'])); // 方式2:将size转为集合后调用has方法 dd($request->size->has('eq')); }直接获取参数值(带默认值避免报错):
public function index(Request $request) { // 若size[eq]不存在则返回null $sizeEq = $request->query('size', [])['eq'] ?? null; dd($sizeEq); }
内容的提问来源于stack exchange,提问作者Nayana
相关产品推荐
相关产品推荐

