javascript - 在 Laravel 5.1 控制器中的 Create 方法上从多个输入值编码和传递 JSON 对象
问题描述
form
我有文章控制器和视图,用于在 Laravel中填充创建一个。
在创建时,form
我有一篇文章,它是主题和描述等必填数据的基础,以及可选字段的部分。部件由javascript
代码生成,它们仅包含可选字段。
目前输入字段类型设置为多个,因此controller
它们返回值,例如
"sub_header":["optional 1","optional 2"],
"text_field":["optional 1","optional 2"]
这些值是arrays
,但我想将它们嵌套在Array
asJSON-objects
中,以使控制器逻辑更易于理解。
我没有找到JSON-object
在提交中嵌套许多输入字段的方法。我知道这可以通过Ajax
电话来完成,但我宁愿只提交一次表单。
所以目标是以如下格式将数据从视图传递到控制器:
{
"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"
}
解决方案
好吧,我想通了。
毕竟不是那么难......似乎这比 Laravel / Blade 问题更多的是 HTML / Javascript。很抱歉误导了关键字。
所以我改变的只是在 JavaScript 中生成输入时的 input.name :
input.name = "parts[part-" + taskRunningNumber + "][sub_header]";
结果一切都很好。
现在传递给控制器的值如下:
{
"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"
}
即使任务不是一个数组,我认为我可以用它来管理。
推荐阅读
- c# - 在 Xunit 中模拟-如何验证返回某些值的方法
- swift - SwiftUI 设置图像边界
- r - 使用 purrr 更改每个列表(嵌套列表)的每个元素
- java - Encrypt two given strings
- reactjs - React Ant 设计表 - 自定义搜索过滤器
- android - 如何在android中创建自定义全屏ovarlay对话框
- c++ - 在 C/C++ 中,我试图在没有 if-else 阶梯的 for 循环中调用不同的函数(在描述中解释)
- css - 如何在中间显示图标和文本
- css - CSS 网格忽略第二列 minmax() 中指定的最小宽度
- r - 我们如何在 shinyapp 中复制具有不同属性名称的现有属性值?