laravel 5.4 RouteCollection.php中的MethodNotAllowedHttpException(第251行)

时间:2017-10-15 09:18:05

标签: laravel laravel-5.4

我是laravel的业余爱好者。我用laravel 5.4。所以我想在没有表单绑定的情况下进行进程删除但是我有这样的错误消息。请告诉我如何解决这个问题。

路线:

<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');`
}

我的控制器:

The temporary folder is missing

1 个答案:

答案 0 :(得分:0)

锚点html元素上的Href将导致GET调用,但您的路由期望删除调用。您有一些方法可以确保您将导致删除调用。

最常见的方法之一是使用表单将数据发布到服务器。

删除

    {{ 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() }}一次并重构您的控制器代码,以便它可以从按钮读取值并将其转换为帖子的相应ID,这样您就不会有多个html表单代码。