Для школы мы должны сделать систему аренды лодок с использованием Laravel. Я новичок в Laravel и довольно плохо знаком с программированием в целом. В моем YachtsController у меня есть функция update, которая вызывается после редактирования всех значений яхты в моем файле edit.blade.php. Теперь я хочу, чтобы, если я нажму кнопку «аренда», она изменила статус яхт в базе данных с «Доступно» на «Недоступно». Как мне это сделать? Нужно ли создавать новую функцию для этого, называемую «аренда»?
Представление яхт:
{!! Form::open(['action' => ['YachtsController@update', $yacht->id], 'method' => 'POST']) !!}
{{Form::hidden('_method', 'PUT')}}
{{Form::submit('Rent',['class' => 'btn btn-primary'])}}
{!! Form::close() !!}
Контроллер яхт:
public function update(Request $request, $id)
{
$this->validate($request, [
'name' => 'required',
'yachttype-list' => 'required',
'port-list' => 'required',
'status' => 'required',
'code' => 'required'
]);
$yacht = Yacht::find($id);
$yacht->name = $request->input('name');
$yacht->yacht_type_id = $request->input('yachttype-list');
$yacht->port_id = $request->input('port-list');
$yacht->status = $request->input('status');
$yacht->code = $request->input('code');
$yacht->save();
return redirect('/yachts')->with('success', 'Yacht updated!');
}
Так как мне сделать это? что если я отправлю форму, что статус будет изменен?
РЕДАКТИРОВАТЬ:
Поэтому я попытался сделать новую функцию под названием аренда:
Вид яхты:
{!! Form::open(['action' => ['YachtsController@rent', $yacht->id], 'method' => 'POST']) !!}
{{Form::hidden('_method', 'PUT')}}
{{Form::submit('Rent',['class' => 'btn btn-primary'])}}
{!! Form::close() !!}
Функция аренды YachtsController
public function rent($id)
{
$yacht = Yacht::find($id);
$yacht->status = "Unavailable";
$yacht->save();
return redirect('/yachts')->with('success', 'Yacht rented!');
}
Маршрут:
Route::get('yachts/rent', 'YachtsController@rent');
Route::resource('yachts', 'YachtsController');
Теперь, когда я нажимаю кнопку «Аренда» на моем виде, кажется, что она все еще проверяет формув моей функции обновления, и это дает мне эту ошибку:
Ошибка