【发布时间】:2019-08-02 04:59:09
【问题描述】:
我有多个答案字段。第一个答案集是 answer0 数组,第二个是 answer1 数组,依此类推。所以我想像 $request->answer0 , $request->answer1 这个。 我需要它在一个 for 循环中。我尝试了类似的方法,但没有得到答案。
for ($i = 0; $i < count($arry); $i++) {
$qstn = new SurveyQuestions();
$qstn->question_name = $arry[$i][0];
$qstn->survey_id = $request->survey_id;
$qstn->survey_group_id = $groupId;
$qstn->answer_datatype_id = $arry[$i][1];
$qstn->question_image_path = $qstnfileNames;
$qstn->save();
$qstnId = $qstn->id;
for ($j = 0; $j < count($request->answer . $j); $j++) {
$ans = new SurveyQuestionAnswers();
$ans->survey_question_id = $qstnId;
$ans->answer = $request->answer1[$j];
$ans->save();
}
}
但这给了我错误
Count():参数必须是数组或者实现可数的对象。
echo '<pre>'; print_r($request->answer); // gives me "1"
如果我得到这样的结果( $request->answer0 ),我将能够将特定问题 ID 的答案数组保存到数据库中。
dd($request->all())
array:9 [▼
"group_name" => "Group 1"
"survey_id" => "5"
"question_name" => array:2 [▼
0 => "q1"
1 => "q2"
]
"answer_datatype_id" => array:2 [▶]
"answer1" => array:2 [▼
0 => "aa"
1 => "bb"
]
"answer2" => array:2 [▼
0 => "cc"
1 => "dd"
]
"group_image_path" => UploadedFile {#394 ▶}
"question_image_path" => array:2 [▶]
]
从上面的输出中,我需要将 q1 的 id 及其对应的 answer1 数组保存在数据库中。然后将 q2 的 id 和 answer2 数组插入数据库等。 提前致谢。
【问题讨论】:
-
你可以
echo '<pre>'; print_r($request->answer);更新你的问题吗? -
已更新。它给了我“1”。
-
您可以访问像
$request->answer{$i}这样的动态变量,并且您的变量应该是一个数组,然后 count 将返回数组中元素的数量。count((array)$your_object)返回计数。只是一个快速的建议。 -
我的答案字段其实是这样的。答案0[],答案1[]。所以当我尝试 dd($request->answer{$i}) 我得到一个 null
-
$i 应该在 for 循环中,增量为 1, answer{$i} $i=0, answer{$i} $i=1