laravel 5.4 RouteCollection.php 中的 MethodNotAllowedHttpException(第 251 行)
laravel 5.4 MethodNotAllowedHttpException in RouteCollection.php (line 251)
我是 laravel 的业余爱好者。我使用 laravel 5.4。所以我想在没有表单绑定的情况下删除进程,但我有这样的错误消息。请告诉我如何解决这个问题。
路线:
Route::delete('test/{id}','TestController@destroy');
我的表格:
<td><button type="button" class="btn"><a href="{{URL::to('coba/test/'.$post->id.'/edit') }}" >Edit</a></button><button type="button" class="btn"><a href="{{ action('TestController@destroy', $post['id']) }}" method="post" >Hapus</a></button>{{ csrf_field() }}{{ method_field('DELETE') }}
</td>
我的控制器:
public function destroy($id)
{
$post = Post::find($id);
$post->delete();
return redirect()->to('coba/test');`
}
锚点 html 元素上的 Href 将导致 GET 调用,但您的路由需要 Delete 调用。您有一些方法可以确保您会导致删除调用。
最常见的方法之一是使用表单而不是 post 将数据发送到您的服务器。
删除
{{ Form::open(['url' => 'test/'.$post->id, 'method' => 'DELETE']) }}
{{ Form::button('delete', ['type' => 'submit',
'class' => 'btn']) }}
{{ Form::close() }}
编辑
{{ Form::open(['url' => 'coba/test/'.$post->id.'/edit', 'method' => 'POST']) }}
{{ Form::button('delete', ['type' => 'submit',
'class' => 'btn']) }}
{{ Form::close() }}
为了最佳实践,我建议只使用一次 {{ Form::open(...) }} {{ Form::close() }}
并重构您的控制器代码,以便它可以从按钮读取值并将其转换为 post 的相应 ID,这样您就不会您的代码中有多个 html 表单。
我是 laravel 的业余爱好者。我使用 laravel 5.4。所以我想在没有表单绑定的情况下删除进程,但我有这样的错误消息。请告诉我如何解决这个问题。
路线:
Route::delete('test/{id}','TestController@destroy');
我的表格:
<td><button type="button" class="btn"><a href="{{URL::to('coba/test/'.$post->id.'/edit') }}" >Edit</a></button><button type="button" class="btn"><a href="{{ action('TestController@destroy', $post['id']) }}" method="post" >Hapus</a></button>{{ csrf_field() }}{{ method_field('DELETE') }}
</td>
我的控制器:
public function destroy($id)
{
$post = Post::find($id);
$post->delete();
return redirect()->to('coba/test');`
}
锚点 html 元素上的 Href 将导致 GET 调用,但您的路由需要 Delete 调用。您有一些方法可以确保您会导致删除调用。
最常见的方法之一是使用表单而不是 post 将数据发送到您的服务器。
删除
{{ Form::open(['url' => 'test/'.$post->id, 'method' => 'DELETE']) }}
{{ Form::button('delete', ['type' => 'submit',
'class' => 'btn']) }}
{{ Form::close() }}
编辑
{{ Form::open(['url' => 'coba/test/'.$post->id.'/edit', 'method' => 'POST']) }}
{{ Form::button('delete', ['type' => 'submit',
'class' => 'btn']) }}
{{ Form::close() }}
为了最佳实践,我建议只使用一次 {{ Form::open(...) }} {{ Form::close() }}
并重构您的控制器代码,以便它可以从按钮读取值并将其转换为 post 的相应 ID,这样您就不会您的代码中有多个 html 表单。