问题描述
我的编辑页面有问题.提交时出现此错误:
I have a problem with my edit page. When I submit I get this error:
我不知道它来自哪里,因为我对Laravel还很陌生.
I have no clue where it comes from as I am pretty new to Laravel.
routes(web.php):
routes(web.php):
Route::group(['middleware' => 'auth'], function () {
Route::get('/', 'ProjectController@index');
Route::get('/projects/{id}', 'ProjectController@show');
Route::post('/create','ProjectController@store');
Route::get('/create', 'ProjectController@create');
Route::get('/projects/{id}/delete', 'ProjectController@destroy');
Route::put('/edit','ProjectController@update');
Route::get('/projects/{id}/edit', 'ProjectController@edit');
});
控制器:
public function edit($id)
{
return view('project.edit',[
'project' => Project::find($id)
]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request)
{
$project = Project::find($request->id);
$project->project_name = $request->input('project_name');
$project->client = $request->input('client');
$project->description = $request->input('description');
$project->time_span = $request->input('time_span');
$project->text_report = $request->input('text_report');
$project->created_by = $request->input('created_by');
$project->save();
return redirect('/')->with('success', 'Project aangepast');
}
推荐答案
您可以通过多种方式处理此问题:
There are multiple ways you can handle this:
-
如果坚持使用
PUT
,则可以将表单操作更改为POST
,并添加具有值PUT
的隐藏的method_field
和隐藏的csrf字段(如果您使用的是Blade,您只需要添加@csrf_field
和{{ method_field('PUT') }}
).这样,表单将接受请求.
If you insist on using
PUT
you can change the form action toPOST
and add a hiddenmethod_field
that has a valuePUT
and a hidden csrf field (if you are using blade then you just need to add@csrf_field
and{{ method_field('PUT') }}
). This way the form would accept the request.
您可以简单地将route和form方法更改为POST
.因为您是定义路线而不使用资源组的人,所以它会很好地工作.
You can simply change the route and form method to POST
. It will work just fine since you are the one defining the route and not using the resource group.
这篇关于该路由不支持POST方法.支持的方法:GET,HEAD.拉拉韦尔的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!