У меня есть foreach l oop, в котором есть флажок. Я не уверен, как правильно получить это от флажка в форме до проверки в контроллере. В моем представлении есть следующее:
<table class="table">
<thead>
<tr>
<th scope="col">Select</th>
</tr>
</thead>
<tbody>
@foreach($plans as $plan)
<tr>
<td>
<input type='checkbox' name='Plan {{$plan->{'Plan ID'} }}' class='form-check-input' value='true'
@if(old($plan->{'Plan ID'},$plan->{'Plan ID'})=="true") checked @endif>
</td>
<td> {{$plan->{'Plan ID'} }}</td>
@endforeach
</tr>
</tbody>
</table>
В моем контроллере есть следующее:
$data = request()->validate ([
'current' => '',
'instructions' => '',
'Plan 1' => '',
'Plan 2' => '',
'Plan 3' => '',
'Plan 4' => '',
'Plan 5' => '',
'Plan 6' => '',
'Plan 7' => '',
'Plan 8' => '',
'Plan 9' => '',
'Plan 10' => '',
'Plan 11' => '',
'Plan 12' => '',
'Plan 13' => '',
'Plan 14' => '',
'Plan 15' => '',
]);
$plansubmission = PlanSubmission::find($id);
//$plansubmission->update($data);
$designs = MedicalDesignsToQuote::find($id);
if($designs==null){
$design = MedicalDesignsToQuote::create(['id'=>$id]);
$design->update($data);
}
else{
$designs->update($data);
Я не хочу использовать массив для атрибута 'name'
Добавлено это в контроллер:
$validator = Validator::make($request->all(), [
"list.*.id" => '', // Object exist validation
"list.*.value" => '',
'current' => '',
'instructions' => '',
]);
$bodyContent = $request->getContent($validator);
$plansubmission = PlanSubmission::find($id);
// $plansubmission->update($data);
$designs = MedicalDesignsToQuote::find($id);
if($designs==null){
$design = MedicalDesignsToQuote::create(['id'=>$id]);
// $design->update($data);
$design->update($validator);
}
else{
$designs->update($validator);
}
В моей таблице есть следующие столбцы:
id
current
instructions
Plan 1
Plan 2
Plan 3
Plan 4
Plan 5
.....
Plan 50
Пользователь может выбрать любой или все 50 вариантов плана с помощью флажок. Например, если выбран план 5, значение для данной строки в таблице будет равно «Истина» для плана 5.
Итак, чтобы сохранить данные, я ожидал, что мне нужно сделать что-то вроде this:
$formData = $request->all();
foreach ($formData['list'] as $planData) {
MedicalPlanDesignToQuote::updateOrCreate(
[$planData['id']] => $planData['value']],
);
}
Если бы у меня было два столбца с именами id и value, я полагаю, я мог бы сделать это:
foreach ($formData['list'] as $planData) {
MedicalPlanDesignToQuote::updateOrCreate(
['id' => $planData['id']],
['value' => $planData['value']]
);
}
Могу ли я в любом случае сделать это со своей структурой таблицы?