Laravel视图传参报错:Undefined variable: total 问题求助
解决Laravel视图中Undefined variable: total的问题
嘿,我一眼就看出问题出在哪啦——你调用view()方法的方式不对!
Laravel的view()函数接受的第二个参数是一个包含所有要传递变量的关联数组,而不是把每个变量单独写成一个数组传进去。你现在传了好几个独立的数组,除了第一个数组里的qualificationheader,后面的information和total根本没被正确传递到视图里,这就导致视图找不到$total变量啦。
正确的写法应该是这样的:
把所有要传递的变量都放进同一个数组里:
return view('qualificationheaders.show', [ 'qualificationheader' => $qualificationheader, 'information' => $data, 'total' => $total ]);
如果你的变量名和要传递到视图的键名一致,还可以用compact()函数简化代码,更清爽:
// 注意:如果想让视图里用$information,那你得先把$data重命名为$information,或者还是用上面的关联数组写法 $information = $data; return view('qualificationheaders.show', compact('qualificationheader', 'information', 'total'));
为什么原来的写法不行?
Laravel的view()方法签名其实是:
view(string $view, array $data = [], array $mergeData = [])
它只接受最多三个参数:视图名、主数据数组、可选的合并数据数组。你传了四个参数,后面的数组直接被忽略了,所以$total根本没被传到视图里,自然就报未定义的错误啦。
另外,你可以在视图里加一行{{ dd(get_defined_vars()) }},这样就能看到所有当前可用的变量,确认$total有没有被正确传进来~
内容的提问来源于stack exchange,提问作者user1783675
相关产品推荐
相关产品推荐

