Я хочу внести изменения в пользовательские данные на той же странице, на которой они отображались. По сути, я хочу выбрать проверенный или отклоненный, нажать кнопку отправки, и страница обновится с изменением. Итак, у меня есть этот код:
<table class = "table table-striped">
<thead>
<tr>
<th scope = "col">#</th>
<th scope = "col">Name</th>
<th scope = "col">Receipt</th>
<th scope = "col">Status</th>
<th scope = "col"></th>
</tr>
</thead>
<tbody>
@foreach($users as $user)
<tr>
<form method='POST' action = "{{ action('PaymentController@update' , $user->id )}}"
enctype = "multipart/form-data">
@csrf
@method('PUT')
<th scope = "row">{{$user->id}}</th>
<td>{{$user->name}}</td>
<td>
<a href = "/{{$user->receipt}}">{{$user->receipt}}</a>
</td>
@if ( $user->payment_status != NULL )
<td>
PAYMENT VERIFIED
</td>
@else
<td>
<div class = "form-group">
<select multiple class = "form-control-sm" id = "exampleFormControlSelect2" name = "nsap_reg"
required = "">
<option value = "verified">Verified</option>
<option value = "NULL">Rejected</option>
</select>
</div>
</td>
@endif
<td>
<input type = "submit" value = "SUBMIT">
</td>
</form>
</tr>
@endforeach
</tbody>
</table>
Контроллер:
public function update(Request $request, $id)
{
$request->validate([
'nsap_reg' => 'required',
]);
$payment_status = \App\User::find($id);
['nsap_reg' => $request->nsap_reg];
$payment_status->save();
return redirect('user-status');
}
Моя проблема в том, что при нажатии кнопки «Отправить» ничего не происходит, страница просто обновляется. Любая помощь будет оценена по достоинству.






Как я вижу, вы создали список выбора с множественным выбором, и когда вы сохраняете данные в базу данных, вы отправляете данные массива для сохранения. Но вам нужно сначала преобразовать это в json, а затем установить для сохранения.
Ниже приведен пример сохранения nsap_reg с множественным выбором.
<?php
public function update(Request $request, $id)
{
$request->validate([
'nsap_reg.*' => 'required',
]);
$payment_status = \App\User::find($id);
$payment_status->nsap_reg = json_encode($request->input('nsap_reg'));
$payment_status->save();
return redirect('user-status');
}
Но если вы используете одиночный выбор, удалите атрибут multiple из списка выбора, а затем используйте этот код.
<?php
public function update(Request $request, $id)
{
$request->validate([
'nsap_reg' => 'required',
]);
$payment_status = \App\User::find($id);
$payment_status->nsap_reg = $request->input('nsap_reg');
$payment_status->save();
return redirect('user-status');
}
Вам просто нужно установить значение nsap_reg для пользовательского объекта и сохранить его.
$payment_status = \App\User::find($id);
$payment_status->nsap_reg = $request->nsap_reg;
$payment_status->save();