【问题标题】:Resource controller destroy method not working资源控制器销毁方法不起作用
【发布时间】:2020-02-11 13:16:18
【问题描述】:

我的 CRUD 应用程序上有一个按钮,如下所示:

<a class="btn btn-danger" onclick="return confirm('Are you sure?')" href="{{route('topic.destroy', $topic->id)}}">

当用户单击按钮时,它会在我的资源控制器中加载 show 方法,而不是 destroy 方法。

我的路线:

Route::resource('/main_topic', 'MainTopicController');
Route::resource('/topic', 'TopicController');
Route::resource('/post', 'PostController');

为什么没有使用正确的控制器方法?

【问题讨论】:

  • 显示您的路线文件...
  • 我听说您需要创建一个论坛,但确实需要这个似乎不需要,因为您当然可以为其添加自定义路由
  • @JeremyHarris 添加了他们
  • 在命令行上做php artisan routes:list,就可以看到所有的路由和每条路由需要的方法。 href 链接只能获取。
  • @aynber 我知道 php artisan 路由:list 不知道它是 GET 只是thansk for that extra information

标签: php laravel


【解决方案1】:

任何指向 Web 路由文件中定义的 POST、PUT 或 DELETE 路由的 HTTP 操作都应包含 CSRF 令牌字段。否则,请求将被拒绝。您可以在 CSRF documentation 中阅读有关 CSRF 保护的更多信息:

<form method="POST" action="{{route('topic.destroy', $topic->id)}}">
    @csrf
    @method('Delete')
    <button type="submit" class="btn btn-danger" onclick="return confirm('Are you sure?')">Delete</button>
</form>

【讨论】:

    猜你喜欢
    • 2017-12-18
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    相关资源
    最近更新 更多