代码之家  ›  专栏  ›  技术社区  ›  Tuomas Tuokkola

从Laravel 5.1控制器中Create方法的多个输入值编码和传递JSON对象

  •  1
  • Tuomas Tuokkola  · 技术社区  · 8 年前

    我有文章控制器和视图来填充 form 在拉腊维尔。

    在创建 形式 我有一篇文章,它是主题和描述等必需数据的基础,还有部分,它们是可选字段。零件是由 javascript 代码,它们只包含可选字段。

    此时输入字段类型设置为multiple,因此 controller 它们返回的值如下

    "sub_header":["optional 1","optional 2"],
    "text_field":["optional 1","optional 2"]
    

    这些值是 arrays ,但我想把它们放在 Array 作为 JSON-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"
    }
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Tuomas Tuokkola    8 年前

    好吧,我想出来了。

    毕竟不是那么难。。。。似乎这更多的是HTML/Javascript而不是Laravel/Blade问题。对不起,误导的关键字。

    因此,在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"
    }
    

    尽管任务不是一个数组,但我想我可以用它来管理。