我有以下代码:
$datas = $request->all();
if (!empty($datas)){
for ($i=1; $i<count($datas); $i++){
$value = [
'questionnaire_id' => $datas[$i]->questionnaires_id,
'question_id' => $datas[$i]->id,
'answer' => $datas[$i]->key
];
return $value;
}
}
我收到错误消息:
Undefined offset: 1
使用输入表单:
<input type="" name="{{$question->id}}" value="{{$key}}">
如何在控制器中接收此值?
发布于 2018-08-15 00:21:37
假设$datas是一个从索引1开始没有空格的数值数组。这可能不是最好的假设。
根据我对request()->all()
的了解,它将返回一个包含所有用户输入的关联数组,因此您将无法在$datas上访问$i键。仅仅因为它可能有1个元素,并不意味着数组上索引将是1。
也许您希望检索特定的用户输入,例如,如果您有一个名为checkbox
的复选框,您可能希望使用request()->input('checkbox')
而不是request()->all()
,但我仍然假设您的数组键将从0开始,而不是1。
当所有其他方法都失败时,设置断点并使用调试器查看$datas的值。如果您没有调试器(这是我强烈推荐的),那么您可以使用dd($datas);
来终止并转储值。
发布于 2018-08-15 02:08:48
您可以尝试初始化变量i = 0
。另外,创建一个dd($datas)
来查看您正在评估的内容。
$datas = $request->all();
if (!empty($datas)){
for ($i=0; $i<count($datas); $i++){
$value = [
'questionnaire_id' =$datas[$i]->questionnaires_id,
'question_id' =$datas[$i]->id,
'answer' =$datas[$i]->key
];
return $value;
}
}
https://stackoverflow.com/questions/51845712
复制相似问题