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

如何在Blade组件中传递数组数据与@props合并?

Laravel Blade组件一次性传递数组Props的方案

当然可以,Laravel Blade原生支持直接展开数组作为组件的属性/Props,不需要自定义:props语法,具体用法如下:

1. 直接展开数组传递

你可以直接将数组通过{{ }}语法展开到组件标签中,效果和逐个传递完全一致:

<x-alert {{ $alert }} />

这个写法会自动将数组中的键值对映射为组件的Props和HTML属性:

  • 匹配组件@props定义的键(比如type、message)会被当作组件Props处理
  • 未在@props中定义的键(比如class)会被自动合并到$attributes中,和手动传递的属性逻辑相同

2. 动态/大量Props的场景适配

不管你的数组是动态生成、包含大量Props,还是混合了组件Props和HTML属性,这种方式都能完美适配。比如动态生成的数组:

// 从配置/数据库获取的动态props数组
$dynamicAlert = [
    'type' => 'warning',
    'message' => '这是一条动态生成的警告',
    'class' => 'mb-6 p-4',
    'id' => 'dynamic-alert-001'
];

调用组件时直接展开即可:

<x-alert {{ $dynamicAlert }} />

3. 注意事项

  • 数组键名需要和组件@props的定义对应,否则会被当作HTML属性处理
  • 如果数组中的值是需要绑定的变量或表达式,直接赋值即可,不需要额外添加:前缀,Laravel会自动处理绑定逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 12:33:25