I'm making a multi-step questionnaire, here's a lil bit of my code from my controller:
public function FirstPage(Request $request, Survey $survey)
{
$class = $survey->questions->where('category', 'Class');
return view('questionnaire.firstpage', compact('survey', 'class'));
}
/**
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function storeFirstPage(Request $request, Survey $survey)
{
$data = $request->validate([
'responses.*.question_tag' => 'required',
'responses.*.question_id' => 'required',
'responses.*.answer_id' => 'required',
'responses.*.question_category' => 'required',
]);
$responses = new SurveyResponse();
$responses-> fill($data);
$request->session()->put('responses', $responses);
return redirect('questionnaire/'.$survey->id.'-'.Str::slug($survey->title).'/next');
}
I repeat that code for the next few pages and when I reach my final page, my code is:
public function ThirdPage(Request $request, Survey $survey)
{
$RAID = $survey->questions->where('category', 'RAID');
return view('questionnaire.thirdpage',compact('survey', 'RAID'));
}
/**
* @return \Illuminate\Http\Response
*/
public function storeThirdPage(Request $request, Survey $survey)
{
$data = $request->validate([
'responses.*.question_tag' => 'required',
'responses.*.question_id' => 'required',
'responses.*.answer_id' => 'required',
'responses.*.question_category' => 'required',
]);
$responses = $request->session()->get('responses');
$responses->save();
return redirect('/results');
}
Everything seems to work fine until I reach the last page and I submit my data. This is the error I received:
Argument 1 passed to Illuminate\Database\Grammar::parameterize() must be of the type array, string given, called in C:\Users\user\MyFile\vendor\laravel\framework\src\Illuminate\Database\Query\Grammars\Grammar.php on line 884
I'm not sure what went wrong, but I think it has to do with this specific line of code:
$responses = $request->session()->get('responses');
$responses->save();
Would be glad to receive any help at all, thanks in advance. :)