使用Laravel邮件模板时如何将$slot数组变量传递到视图
Laravel 数组变量传递到视图的正确实现方法
你原有代码的核心问题是with()方法的调用方式不符合Laravel的语法规范:Laravel的with()方法最多接收2个参数(第一个为视图变量名,第二个为对应变量值),你传入6个字符串参数的写法是无效的,仅会生成一个值为surname的$name变量传到视图,完全无法实现你的需求。
以下是3种可直接使用的正确写法:
- 写法1:将数组作为
view()方法的第二个参数直接传入
这种写法下,return view('frontend.email.new', $slot);$slot数组的键名会直接映射为视图中的变量名,你可以在frontend.email.new视图中直接调用$name、$surname、$phone等变量取值。 - 写法2:将数组传入
with()方法
最终效果和写法1完全一致,适合需要链式调用多个视图处理方法的场景。return view('frontend.email.new')->with($slot); - 写法3:将整个
$slot作为单个变量传入视图
如果你希望在视图中统一通过一个变量调用所有参数,可以用如下写法:
这种写法下,你需要在视图中通过return view('frontend.email.new')->with('slot', $slot);$slot['name']、$slot['surname']的形式读取对应值。
内容的提问来源于stack exchange,提问作者SemiusBlack
相关产品推荐
相关产品推荐

