Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel,如何更新json列中的数组?_Laravel - Fatal编程技术网

laravel,如何更新json列中的数组?

laravel,如何更新json列中的数组?,laravel,Laravel,在my Laravel应用程序中,数据库有一个名为mavads的列,如下所示: { "en": [ { "need": "enn1", "amount": "enm1" }, { "need": "enn2", "amount": "enm2" }, { "need": "enn3", "amount": "enm3" }, ], "ru": [ {

在my Laravel应用程序中,数据库有一个名为mavads的列,如下所示:

{
  "en": [
    {
      "need": "enn1",
      "amount": "enm1"
    },
    {
      "need": "enn2",
      "amount": "enm2"
    },
    {
      "need": "enn3",
      "amount": "enm3"
    },
  ],
  "ru": [
    {
      "need": "run1",
      "amount": "rum1"
    },
    {
      "need": "run2",
      "amount": "rum1"
    },
  ]
}
这是将数据发送到控制器以更新数据库的表单:


@foreach($food->mavads['en'] as $m)
      <input type="text" class="input" name="enneed[]" value="{{ $m['need'] }}">
      <input type="text" class="input" name="enamount[]" value="{{ $m['amount'] }}">
@endforeach

@foreach($food->mavads['ru'] as $m)
      <input type="text" class="input" name="runeed[]" value="{{ $m['need'] }}">
      <input type="text" class="input" name="ruamount[]" value="{{ $m['amount'] }}">
@endforeach

在Controller中,我得到$request,并希望更新en或ru语言的每个{need:run2,amount:rum1}:

    $enmavad = $request->only('enneed', 'enamount');
    $rumavad = $request->only('runeed', 'ruamount');
    $food->mavads = ["en" => $enmavad, "ru" => $rumavad];

but I get the error and no correct update

@foreach$food->mavads['en']作为$m @endforeach 提交时,键enneed和enamount的值将包装在数组中,如下所示:

[ “enneed”=>[“enn1”,“enn2'], 'enamount'=>['enm1','enm2'] ] 因此,您可以将html更改为如下所示:

@foreach$food->mavads['en']作为$i=>m @endforeach 它将返回:

[ ‘en’=>[[ “需要”=>“enn1”, “金额”=>“emn1” ],[ “需要”=>“enn2”, “金额”=>“emn2” ]], ] 因此,在控制器中,您可以直接获取数据格式:

$enmavad=$request->only'en'; $rumavad=$request->only'ru'; $food->mavads=array\u merge$enmavad$rumavad;
发生了什么错误?{en:[..]}。。。。而不是{en:[{need:…,amount:…}}plz发布$enmavad$enmavad=$request->only'enneed',enamaount'的值;返回$enmavad;{enneed:[en-need 1,en-need 2],enamount:[en-amount 1,en-amount 2]}谢谢您的时间和帮助,但我在数据库中得到了这个错误``{en:{en:[{'need]:en-need 1,amount:en-amount 1},{'need:en-need 2,amount en-amount 2}}},ru ru ru ru ru:{ru 1:{'need':ru need 2,'amount':ru amount 2}}}``除了这个单一的任务之外,一切似乎都正常:{en:[{'need'..从列中读取时出错data@MehdiYaghoubi很抱歉,我已经删除了单引号。谢谢你的朋友的帮助和指导。你很棒。祝你身体健康。让我们一起来。
    $enmavad = $request->only('enneed', 'enamount');
    $rumavad = $request->only('runeed', 'ruamount');
    $food->mavads = ["en" => $enmavad, "ru" => $rumavad];

but I get the error and no correct update