эй, я хотел бы сохранить вопросы с 4 вариантами и одним правильным ответом и затем отобразить в моей таблице. это 'работает', но в моей таблице всегда отображается ключ от $ correct_options как правильный ответ, и я хотел бы отобразить значение ..
это мой код:
public function create(){
$categories = Category::pluck('name', 'id')->all();
$correct_options = [
'option1' => 'Option #1',
'option2' => 'Option #2',
'option3' => 'Option #3',
'option4' => 'Option #4',
];
return view('admin.questions.create', compact('categories', 'correct_options'));
}
public function store(QuestionsRequest $request){
$splitOptions = implode(",", $request->options);
$arraySplitOptions = preg_split("/,/", $splitOptions);
foreach ($arraySplitOptions as $key => $value) {
// my thought was to loop through the array and check if there is a match between the correct answer and the options but couldnt realize it..
}
Question::create([
'question' => $request->question,
'categories_id' => $request->categories_id,
'correct_answer' => $request->correct_answer, // here i will get always the key but couldnt find a proper solution
'options' => implode( ", ", $request->options)
]);
Session::flash('message', 'Question successfully created.');
return redirect(route('admin.questions.index'));
}
а это моя форма:
{!! Form::open(['method' => 'POST', 'action' => 'Admin\AdminQuestionsController@store']) !!}
@csrf
<div class="row col-md-12 form-group">
{!! Form::label('question', 'Question:') !!}
{!! Form::textarea('question', null, ['class' => 'form-control', 'rows' => 3, 'cols' => 3]) !!}
</div>
<div class="row col-md-12 form-group">
{!! Form::label('options', 'Option 1:') !!}
{!! Form::text('options[]', null, ['class' => 'form-control']) !!}
</div>
<div class="row col-md-12 form-group">
{!! Form::label('options', 'Option 2:') !!}
{!! Form::text('options[]', null, ['class' => 'form-control']) !!}
</div>
<div class="row col-md-12 form-group">
{!! Form::label('options', 'Option 3:') !!}
{!! Form::text('options[]', null, ['class' => 'form-control']) !!}
</div>
<div class="row col-md-12 form-group">
{!! Form::label('options', 'Option 4:') !!}
{!! Form::text('options[]', null, ['class' => 'form-control']) !!}
</div>
<div class="row col-md-12 form-group">
{!! Form::label('correct_answer', 'Correct Answer:') !!}
{!! Form::select('correct_answer', array('' => 'Choose One:') + $correct_options, null, ['class' => 'form-control']) !!}
</div>
<div class="row col-md-12 form-group">
{!! Form::label('categories_id', 'Category:') !!}
{!! Form::select('categories_id', array('' => 'Choose One:') + $categories, null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Daten absenden', ['class' => 'btn btn-primary']) !!}
</div>
{!! Form::close() !!}
есть идеи? было бы хорошо, спасибо:)
Редактировать: ладно, я решил это ..: D
изменил массив:
$correct_options = [
0 => 'Option #1',
1 => 'Option #2',
2 => 'Option #3',
3 => 'Option #4',
];
я добавил это к foreach:
foreach ($arraySplitOptions as $key => $value) {
if ($request->correct_answer == $key) {
$request->correct_answer = $value;
}
}