我想删除laravel应用程序中的用户(以管理员身份)。因此,我有一条路线:
Route::post('/dashboard/{id}/delete', 'Auth\Registercontroller@delete');
当我单击删除按钮时,导致该链接,我收到此错误:
The GET method is not supported for this route. Supported methods: POST.
我创建的路由是POST路由,所以我不知道问题出在哪里。
答案 0 :(得分:2)
要遵守惯例,这就是我要解决的问题。假设您使用的是Blade模板:
skip_blank_lines=True
然后,您的路由类型将以<form action="/dashboard/{{ $your_id_variable }}" method="POST">
@method('DELETE')
@csrf
<button type="submit">Delete</button>
</form>
的形式欺骗,例如:
delete
请注意,根据Laravel约定,我已将控制器方法更改为Route::delete('/dashboard/{id}', 'Auth\Registercontroller@destroy');
。
答案 1 :(得分:0)
发生错误是因为它将路由用作GET,并且已将其定义为POST
修改您的路线,使其看起来像这样:
Route::post('/dashboard/{id}/delete', 'Auth\Registercontroller@delete')->name('user.delete');
<a href="#" onclick="event.preventDefault();document.getElementById('user-delete').submit();"> Delete </a>
<form id="user-delete" action="{{ route('user.delete',$id) }}" method="POST" style="display: none;">
@csrf
</form>