Laravel 5:使用Route :: delete删除用户记录,在RouteCollection.php中获取MethodNotAllowedHttpException
作者:互联网
尝试在页面上执行此操作:
<form class="form-horizontal" role="form" method="DELETE" action="/user/{{ $user->id }}/delete">
<button type="submit" class="btn btn-danger">
Delete
</button>
</form>
路线:
Route::delete('user/{id}/delete', ['middleware' => ['admin'],
'uses' => 'Auth\UserController@destroy']);
控制器:
class UserController extends Controller
{
public function destroy($id)
{
DB::table('users')->where('id', $id)->delete();
return view('admin/dash');
}
}
我在RouteCollection.php中获得MethodNotAllowedHttpException.
我如何解决它?
解:
感谢乔希.我通过将形式更改为
<form method="POST" action="/user/{{ $user->id }}/delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="_method" value="DELETE" />
<button type="submit" class="btn btn-danger">
Delete
</button>
</form>
解决方法:
在某些版本的HTML的某些实现中,仅允许GET和POST作为方法.
您可以通过添加自己处理的附加属性_method来解决此问题,或者可以使用JavaScript.
如果您使用的是Chrome,请检查开发人员工具中的“网络”标签以验证是否是问题所在,或将请求添加到帖子中以进行进一步的诊断.
有关更多详细信息,请参见here.
标签:laravel-5,routes,php 来源: https://codeday.me/bug/20191119/2035936.html