Laravel中slot变量名与本地变量重名时如何输出传入的slot内容
Laravel Blade slot与本地变量同名的解决方法
- 直接通过框架自动注入的
$slots集合获取slot内容
Laravel Blade组件默认会内置全局可用的$slots集合对象,所有传入的具名slot都会存储在该对象中,完全不受本地变量覆盖的影响,调用方式如下:{{ $slots->get('customLayout') }} - 配置降级逻辑(可选)
如果你需要实现「优先使用传入的slot,slot未传递时再使用本地$customLayout变量」的逻辑,可以直接给get方法传入第二个默认值:{{ $slots->get('customLayout', $customLayout) }}
冲突原因说明:Blade 渲染组件时,本地显式声明的变量优先级高于框架自动注入的同名slot变量,因此直接调用
{{ $customLayout }}会优先读取本地值。使用$slots取值无需修改原有slot名或本地变量名,完全符合命名统一的需求。
内容的提问来源于stack exchange,提问作者Marko
相关产品推荐
相关产品推荐

