Я работаю над журналом заявок, в котором билеты редактируются несколько раз, прежде чем они «сделаны».
У меня есть обзор, где вы видите все билеты, в верхней части страницы находятся 6 кнопок. Все кнопки открывают всплывающее окно с формой. Первая кнопка - это функция создания, которая создает заявку и заполняет первую информацию. Все остальные поля теперь NULL
. Вторая кнопка - первая кнопка редактирования.
При открытии открывается форма, где пользователь сканирует штрих-код, чтобы заполнить первое поле; Ticket Number
. этот номер билета уникален для каждого билета. Следующее, что нужно заполнить, это ваши учетные данные, которые появляются из выпадающего списка.
Из-за того, что все формы редактирования работают по Ticket_number (который сканируется с помощью QR-кода), я сделал так, чтобы все формы находились на одной странице. Поэтому я не могу сделать что-то вроде: action="{{ route('countries.update',$country->id) }}
, поскольку в данный момент я не знаю идентификатор.
Вот код, стоящий за всем (и вы можете видеть, что я тоже там пробовал):
web.php:
// TICKET LOG ROUTES
Route::post('ticket/start-picking', 'TicketController@startpicking')->name('tickets.startpicking');
Route::resource('tickets', 'TicketController');
форма для редактирования:
<div id="modal-start-picking" class="modal">
<form method="POST" id="modal-start-picking-form" action="{{ route('tickets.startpicking') }}">
@csrf
<input type="text" value="modal-start-picking" name="type" hidden>
<div class="modal-content">
<h4>Start Picking</h4>
<p>Scan Ticket Number here</p>
<div class="input-field">
<label for="start">Ticket Number</label>
<input type="text" name="ticket_number" id="start" autofocus>
</div>
<div class="input-field">
<select id="picker" name="picker">
<option value="" disabled selected>Choose a Picker</option>
@foreach($employees as $employee)
<option {{(old('picker') == $employee->initials ) ? 'selected' : ''}} value="{{ $employee->initials }}">{{ $employee->initials }}</option>
@endforeach
</select>
</div>
</div>
<div class="modal-footer">
<input class="btn-flat" type="submit" value="Start Picking">
</div>
</form>
</div>
Функция в TicketController:
public function startpicking(Request $request, Ticket $ticket)
{
$request->validate([
'picker' => 'required',
]);
$ticket->update(array_merge($request->all(), ['picker_start_time' => Carbon::now()]));
return redirect()->route('tickets.index')->with('toast', 'Ticket updated successfully');
}
Если потребуется дополнительная информация, я с удовольствием обновлю свой пост.