如何解决即使Javascript发送了正确的数据,我的foreach循环也没有检索键值对
当我通过ajax(axios)提交按钮时,我设法将以下数据发送到Laravel,直到控制台打印为止:
{name: "task",fields: Array(2)}
fields: Array(2)
0: {_token: "hRQyJ9NlwLdKpZbU7W2REV2I5YF6Pg8D6HcoCof7",name: "name1",type: "type1",default: "default1"}
1: {_token: "hRQyJ9NlwLdKpZbU7W2REV2I5YF6Pg8D6HcoCof7",name: "name2",type: "type2",default: "default2"}
length: 2
__proto__: Array(0)
name: "task"
__proto__: Object
因此,现在我想读取来自fields数组的数据,并且对于每次迭代,我想将键和值添加到字符串中并添加新行。
所以我在控制器中有这个
$fields = $request->fields;
$a = '';
foreach ($fields as $key => $value) {
$a .= "value of $key is $value";
}
return $a;
按下“保存”按钮时,我收到500个内部服务器错误。
在此过程中,我通过返回第一个元素再次检查$ fields是否为空,我获得了成功:
return $fields[0];
下面是我在JS中所拥有的:
let crud_object = {
name: crud_name.value,fields: data
}
console.log(crud_object)
axios.post('/dashboard/project/new',crud_object)
.then( res => console.log(res.data))
.catch(err => console.log(err.response.dta))
除了控制台中打印的对象外,我也看到了这一点:
VM73400:1 POST http://127.0.0.1:8000/dashboard/project/new 500 (Internal Server Error)
(anonymous) @ VM73400:1
dispatchXhrRequest @ app.js:285
xhrAdapter @ app.js:119
dispatchRequest @ app.js:765
Promise.then (async)
request @ app.js:542
Axios.<computed> @ app.js:567
wrap @ app.js:1131
(anonymous) @ all.js:68
对于每个无法检索键值对的循环,我的问题是什么?
编辑: 我在laravel.log中看到了这一点:
[2020-11-05 19:11:09] local.INFO: array (
0 =>
array (
'_token' => 'hRQyJ9NlwLdKpZbU7W2REV2I5YF6Pg8D6HcoCof7','name' => 'fewf','type' => 'ewfe','default' => 'fwefwe',),1 =>
array (
'_token' => 'hRQyJ9NlwLdKpZbU7W2REV2I5YF6Pg8D6HcoCof7','name' => 'fwef','type' => 'fwef','default' => 'wefwe',)
解决方法
我认为连接错误,
$fields = $request->fields;
$a = '';
foreach ($fields as $field){
foreach ($field as $key => $value) {
$a .= " value of " . $key . " is " . is_string($value) ? $value :
implode(',',$value);
}
}
return $a;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。