#arrays #json #laravel #api #parameter-passing
#массивы #json #laravel #API #передача параметров
Вопрос:
Я работаю с laravel api. У меня проблемы с передачей значения итерации через laravel json.Вот код…
public function show($quizResultId)
{
//QuizResult
$quizResult=QuizResult::findOrFail($quizResultId);
$quizSessionId=$quizResult->session_id;
//QuizSessionAns
$quizSessionAns=QuizSessionAnswer::where('session_id','=',$quizSessionId)->get();
$quizSessionAns=$quizSessionAns->pluck('selected_choice_id');
//QuizSession
$quizSession=QuizSession::findOrFail($quizSessionId);
//Question with Choices
$quizId=$quizSession->quiz_id;
$quiz=Quiz::with('questions.choices')->findOrFail($quizId);
$questions=$quiz->questions;
$questionLimit=$questions->count();
for($i=0;$i<$questionLimit;$i ){
$questionChoice=$questions[$i];
$chosenAns=$quizSessionAns[$i];
return response()->json([
'quiz_session'=>$quizSession,
'question_with_choice'=>$questionChoice,
'candidate_chosen_ans'=>$chosenAns
]);
}
}
Здесь цикл не работает.Итак, как решить эту проблему?
Ответ №1:
Ваш оператор return находится в цикле, поэтому на первой итерации он просто разорвет цикл и вернет результат. Вместо этого вы должны сделать что-то вроде этого:
$questionChoice = [];
$chosenAns = [];
for($i=0;$i<$questionLimit;$i ){
$questionChoice[]=$questions[$i];
$chosenAns[]=$quizSessionAns[$i];
}
return response()->json([
'quiz_session'=>$quizSession,
'question_with_choice'=>$questionChoice,
'candidate_chosen_ans'=>$chosenAns
]);