我有文章 Controller 和 View ,用于在 Laravel 中创建一个表单
。
在创建 form
时,我有一篇文章,它是强制性数据(例如主题和描述)以及可选字段部分的基础。部件由 javascript
代码生成,它们仅包含可选字段。
目前输入字段类型设置为多个,因此在 controller
中它们返回值如
"sub_header":["optional 1","optional 2"],
"text_field":["optional 1","optional 2"]
这些值是数组
,但我想将它们作为JSON-objects
嵌套在Array
中,以使 Controller 逻辑更容易理解。
我没有找到在提交中将许多输入字段嵌套在 JSON-object
中的方法。我知道这可以通过 Ajax
调用来完成,但我更愿意只提交一次表单。
所以目标是将数据从 View 传递到 Controller ,格式如下:
{
"topic":"Test Topic", "description":"Give a short description of the
Article.",
"media_description":"Give a short description of media element.",
"parts":[
"part-1":{
"sub_header":"optional 1",
"text_field":"optional 1"
},
"part-2":{
"sub_header":"optional 2",
"text_field":"optional 2"
}
],
"published":"1"
}
最佳答案
好吧,我明白了。
毕竟没那么难....似乎这是 HTML/Javascript 而不是 Laravel/Blade 问题。抱歉误导关键字。
所以我改变的只是在 JavaScript 中生成输入时的 input.name :
input.name = "parts[part-"+ taskRunningNumber + "][sub_header]";
结果一切都很好。
现在传递给 Controller 的值如下:
{
"topic":"mandatory 1",
"description":"mandatory 1",
"media_description":"mandatory 1",
"parts":{
"part-1":{
"sub_header":"optional 1",
"text_field":"optional 1",
"media":null
},
"part-2":{
"sub_header":"optional 2",
"text_field":"optional 2",
"media":null
}
},
"published":"1"
}
尽管任务不是数组,但我认为我可以处理它。
关于javascript - 在 Laravel 5.1 Controller 中的 Create 方法上从多个输入值编码和传递 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51538183/