Laravel数组无法传递到Blade模板且取值为空该如何解决?
Laravel数组传递到Blade为空修复方案
错误1:compact函数参数错误
compact函数需要接收变量名的字符串作为参数,而非变量本身。你当前写法compact($resultList)会将数组内容作为键名匹配变量,根本无法生成正确的传值结构,视图中自然不存在$resultList变量。
修正后控制器代码:
public function stackover(Request $request) { $resultList = array(); $dateListArray = $this->getChargeData($request->id); Log::debug($dateListArray); foreach($dateListArray as $datelist) { array_push($resultList,$datelist); } Log::debug("CHARGELIST"); Log::debug($resultList); // 仅修改此处,给变量名加引号即可 return view('stacker', compact('resultList')); }
错误2:Blade输出数组到JS的格式错误
PHP数组无法直接输出到JS上下文,必须转换为JSON格式,直接用{{$resultList}}输出会得到Array字符串或语法错误。
修正后Blade代码:
// 使用Laravel内置的@json指令自动完成转码和转义 console.log(@json($resultList ?? []));
内容的提问来源于stack exchange,提问作者conny
相关产品推荐
相关产品推荐

