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

如何通过Blade模板向Laravel后端传递数组数据?

无需字符串化传递数组至Laravel后端的实现方案

当然可以,不用字符串化直接传递数组给Laravel后端有几种实用方案,根据你的前端场景选择即可:

1. HTML表单提交场景

直接给表单元素的name属性按数组格式命名,Laravel会自动将其解析为多维数组,完全符合你期望的格式。示例代码:

<form method="POST" action="/members">
    @csrf
    <!-- 第一条成员数据 -->
    <input type="text" name="members[0][name]" value="Sam">
    <input type="text" name="members[0][location]" value="US">
    
    <!-- 第二条成员数据 -->
    <input type="text" name="members[1][name]" value="Mike">
    <input type="text" name="members[1][location]" value="UK">
    
    <button type="submit">提交</button>
</form>

后端控制器中直接获取即可:

public function store(Request $request)
{
    $members = $request->input('members');
    // $members 结构就是你要的:
    // [
    //     ["name" => "Sam", "location" => "US"],
    //     ["name" => "Mike", "location" => "UK"]
    // ]
}

如果是动态添加表单字段,也可以用members[][name]这种省略索引的命名方式,Laravel会自动按提交顺序组装成数组。

2. AJAX/API请求场景

用JS(原生JS、Axios、jQuery等)发送请求时,直接传递JS原生数组即可,无需转JSON字符串,只要请求头设置正确(多数JS库默认会处理)。示例用Axios:

const members = [
    { name: "Sam", location: "US" },
    { name: "Mike", location: "UK" }
];

axios.post('/members', { members: members })
    .then(res => {
        // 处理响应逻辑
    });

后端同样通过$request->input('members')拿到目标数组,结构与你期望的完全一致。

关键注意点

  • 表单提交默认的application/x-www-form-urlencoded、AJAX常用的application/json请求头,Laravel都能自动解析数组结构,无需额外配置。
  • 若后端需要验证数组格式,可在请求验证规则里用array和*通配符,比如'members.*.name' => 'required|string'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:19:55