发布路线而不是获得LARAVEL

时间:2020-01-15 18:14:43

标签: laravel routes

我想删除laravel应用程序中的用户(以管理员身份)。因此,我有一条路线: Route::post('/dashboard/{id}/delete', 'Auth\Registercontroller@delete');

当我单击删除按钮时,导致该链接,我收到此错误: The GET method is not supported for this route. Supported methods: POST. 我创建的路由是POST路由,所以我不知道问题出在哪里。

2 个答案:

答案 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>