You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blade(Livewire)调用laravel-modules动态组件原生标签语法失效问题

问题原因

Blade 模板对 <livewire: 开头的组件标签采用编译期静态解析规则,标签名位置不支持嵌入 {{ }} 动态变量:你写的 {{ $module->getLowerName() }} 会在模板编译阶段被当成普通字符串处理,不会被替换为实际的模块名,因此框架无法匹配到对应的组件,导致渲染失败。

而 @livewire() 指令是运行时解析的,所以传入动态拼接的组件名可以正常生效。

标签式语法实现方案

用 Livewire 内置的动态组件标签 <livewire:dynamic-component> 即可实现需求,它的 is 参数支持传入动态组件名,写法如下:

@foreach($modules as $module)
    <livewire:dynamic-component 
        :is="$module->getLowerName() . '::configuration'" 
        :client="$client"
    />
@endforeach

注意事项

确保每个模块的配置组件已经按照 laravel-modules-livewire 的规则正确注册,组件别名与拼接后的字符串完全匹配即可。


内容的提问来源于stack exchange,提问作者Tales

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:45:02