Я изучаю Laravel из Lacast и пытаюсь создать приложение CRUD. Я правильно реализовал index,show,create
и store
, но с формой edit
, когда я пытаюсь представить данные, которые он выбрасываетBadMethodCallException
.Вот мои маршруты
Route::get('/projects','ProjectsController@index');
Route::get('/projects/{id}','ProjectsController@show')->where('id','[0-9]+');
Route::get('/create','ProjectsController@create');
Route::post('/projects','ProjectsController@store');
Route::get('/projects/{id}/edit','ProjectsController@edit')->where('id','[0-9]+');
Route::put('/projects/{id}','ProjectsController@update')->where('id','[0-9]+');
Route::delete('/projects/{id}','ProjectsController@destroy');
Вот форма edit
:
@extends('template');
@section('content')
<h2>Create new project</h2>
<p>/projects/{{ $project->id }}</p>
<form method="POST" action="/projects/{{ $project->id }}">
{{ method_field('PUT') }}
{{ csrf_field() }}
<div>
<input value="{{ $project->title }}" type="text" name="title" id="title" placeholder="Project title">
</div>
<div>
<textarea name="description" placeholder="Enter the project description">{{ $project->description }}</textarea>
</div>
<div>
<button type="submit">Update project</button>
</div>
</form>
@endsection
Код контроллера:
public function edit($id){
$project= Project::find($id);
return view('projects.edit',compact('project'));
}
public function update($id){
$project= Project::find($id);
$project->title=request('title');
$project->description('description');
$project->save();
return redirect('/projects');
}
edit form
отображается как положенос данными, поступающими из базы данных, после отправки я получаю следующую страницу ошибки:
На примере инструктора код работал отлично, и перед использованием PUT
или в моей форме, и в моем контроллере я использовал PATCH
как инструктор, но всегда тот же результат.
Вот ссылка на видео инструктора: Faking PATCH и DELETE Requests