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