我没有使用资源控制器。
路线:
Route::delete('/deleteTag/{tag}','Controller2@deleteTag');
控制器功能:
public function deleteTag(Tag $tag){
$Tag = Tag::where('id', $tag->id)->get()->first();
$Tag->delete();
return redirect()->action('Controller2@main');
}
电话:
<form method="delete" action="http://***/public/deleteTag/{{$tag->id}}">
{!! Form::token() !!}
<button type="submit">delete</button>
</form>
程序返回MethodNotAllowedHttpException。
谢谢。
答案 0 :(得分:2)
您可以尝试这一点(注意隐藏的_method
输入):
<form method="post" action="http://***/public/deleteTag/{{$tag->id}}">
{!! Form::token() !!}
<input type="hidden" name="_method" value="DELETE">
<button type="submit">delete</button>
</form>
答案 1 :(得分:1)
最好将您的路线更改为此模式:
Route::resource('tags','TagController');
您应该注册一个到控制器的资源丰富的路由。该单个路由声明创建了多个路由来处理Tag资源上的各种RESTful操作。 请记住,由于HTML表单无法发出PUT,PATCH或DELETE请求,因此您需要添加一个隐藏的_method字段来欺骗这些HTTP动词。
<input type="hidden" name="_method" value="DELETE">
或将其添加到您的表单中
{{method_field('DELETE')}}