Php 我的foreach循环没有检索键值对,即使Javascript发送了正确的数据
当我通过ajax(axios)提交按钮时,我会将以下数据发送到Laravel,直到控制台打印为止:Php 我的foreach循环没有检索键值对,即使Javascript发送了正确的数据,php,laravel,foreach,Php,Laravel,Foreach,当我通过ajax(axios)提交按钮时,我会将以下数据发送到Laravel,直到控制台打印为止: {name: "task", fields: Array(2)} fields: Array(2) 0: {_token: "hRQyJ9NlwLdKpZbU7W2REV2I5YF6Pg8D6HcoCof7", name: "name1", type: "type1", default: "default1&
{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
我想你的连接是错的
$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;
在任何人提供任何有帮助的信息之前,您需要向我们提供错误消息。不幸的是,这不是@sta的答案。通常,如果您有双引号,您可以自由地在字符串中使用带美元符号的变量。我试过你的建议来重新确认你的错误是什么?我先得到一台500的内部服务器,然后是控制台中的undefined.On.env change
APP_DEBUG=true
并获取错误我仍然得到完全相同的错误:local.error:Array to string conversion您可以指定在stacktraceLine 22中获取此错误的行,哪一个在foreachIt中如果你能显示$field中的内容最好我刚刚编辑了这个问题,因为我设法记录了$field中的内容。
$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;