【问题标题】:Laravel API route - exception: "Symfony\Component\HttpKernel\Exception\NotFoundHttpException"Laravel API 路由 - 异常:“Symfony\Component\HttpKernel\Exception\NotFoundHttpException”
【发布时间】:2020-12-14 00:02:30
【问题描述】:

我正在我的作品集网站上为学校制作博客,现在我正在使用 VueJS 和 Laravel 进行此操作,为此我需要 API 路由。 现在我想删除具有特定 ID 的评论,但是当我按下删除按钮时,它给出了错误:

异常:“Symfony\Component\HttpKernel\Exception\NotFoundHttpException”

错误出现在下一条路由的 {routeCommentID} 部分:

Route::post('/deleteComment/{routeCommentID}', 'CommentController@delete');

我做错了什么?因为当我删除它时它工作正常,但我需要这部分,因为我必须删除具有特定 ID 的评论。

【问题讨论】:

  • 当您收到该错误时,您最终会访问哪个 URL?
  • 您能否添加更多详细信息,检查导航器网络检查器以查看您使用 vueJS 调用的 url。您在 laravel 中声明该路线的确切位置以及它是否在一个组中?
  • 你能添加你的 vue js 代码吗?

标签: laravel vue.js


【解决方案1】:

运行 php artisan route:list 并检查类似 '/deleteComment/{routeCommentID}' 的路由是否存在,以及您是否在 Vue 应用程序中使用该路由。

【讨论】:

    【解决方案2】:

    删除帖子最好使用

    Route::delete('/deleteComment/{id}', 'CommentController@delete');
    

    并检查您的刀片以进行删除 它应该像下面这样

    <form action={{ 'wanted route' }} method="post">
    @csrf
    @method('delete')
        // your code
    </form>
    

    【讨论】:

    • 是的,我知道,但它适用于 VueJS 而不仅仅是 laravel,所以我不能使用 @'s
    • @JensBouma 如果您的路线在 api.php 中,则不需要 csrf
    • 我认为更好的方法是:Route::delete('/comments/{Comment}/delete', 'CommentController@delete');。为什么? 1.资源(休息)态度。 2.您可以使用内置的资源路由(Route::resource())。 3. 你与 Laravel 文档保持一致。 4. 为什么不允许 laravel 为你绑定模型? :) |在这里查看:laravel.com/docs/7.x/controllers#resource-controllers
    • @N69S 我说过类似的话,不完全是,在 vue 中我们在表单中有删除方法
    猜你喜欢
    • 2021-12-19
    • 2021-01-19
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    相关资源
    最近更新 更多