【问题标题】:make a nested array to laravel request为 laravel 请求创建一个嵌套数组
【发布时间】:2020-05-03 03:08:58
【问题描述】:

我正在尝试在从我的视图到控制器的请求中添加嵌套数组。我已经在我的视图中动态生成了这样的表单:

我的观点:

请求当前如下所示:

怎样才能把我的请求变成这样:

"akunbelanja_id" => array:3 [▼
    0 => "1" => array:3 [▼
        0 => "topi"
        1 => "pensil"
        2 => "baju"
    ]
    1 => "2" => array:2 [▼
        0 => "kertas"
        1 => "tinta"
    ]                         
    2 => "3" => array:1 [▼
        0 => "botol"
    ]
]

有可能吗?我需要额外的 JavascriptJQuery 吗?如果可能,我如何访问控制器中的每个数据对象?

【问题讨论】:

  • 你尝试了什么?

标签: arrays laravel laravel-blade


【解决方案1】:

在视图中

<script type = "text/javascript" >
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content');
        }
    });

function sendData() {
    // Your nested JS array goes here
    var data =  [
       {
          "1" : {0 : "topi",1 : "pensil",2 : "baju"}
       },
       {
          "2" : {0 : "kertas",1 : "kertas"}
       },
       {
          "3" : {0 : "botol"}
       }
    ];
    $.ajax({
        url: '/test',
        type: 'POST',
        dataType: 'json',
        contentType: 'json',
        data: JSON.stringify(data),
        contentType: 'application/json; charset=utf-8',
    });
} 
</script>

在控制器中

function saveJson(Illuminate\Http\Request $request)
{
    $data = json_decode($request->getContent());
}

【讨论】:

  • 如果父数据只有 3 个就可以了.. 但我的字段可以动态生成.. 并且可能有 3、2 个或更多数据.. 我如何迭代并分配正确的数组?
  • 您可以在 sendData() 函数之外定义一个全局 JS 变量 (var data = [];) 并像蚂蚁一样动态填充它。完成后,您可以像往常一样通过 ajax 发送它(数据:JSON.stringify(数据))
猜你喜欢
  • 1970-01-01
  • 2019-07-07
  • 2016-08-07
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-26
  • 1970-01-01
相关资源
最近更新 更多