删除行Laravel时出现405错误,惯性+Vue.js

405 error when deleting row Laravel, Inertia+Vue.js

我正在使用 Laravel 和 Inertia+Vue.js。

我正在尝试删除一行,但出现 405 错误方法不允许。

这是我在 Layout.vue 中的代码:

<a @click="destroy(website)">delete</a>
import AppLayout from '@/Layouts/AppLayout.vue';
import {Link} from "@inertiajs/inertia-vue3";
import {Inertia} from "@inertiajs/inertia";

export default {
    components: {
        Link, AppLayout, Inertia
    },

    props: {
        websites: Object
    },

    methods: {
        destroy(website) {
            if(confirm('are u sure?')) {
                this.$inertia.delete(`/destroy/website/${website.id}`)
            }
        }
    },

我控制器中的方法:

public function destroy(Website $website)
    {
       $website->delete();
       return redirect()->route('dashboard');
    }

我在 web.php 的路线:

Route::delete('/destroy/website/{id}', [WebsiteController::class, 'destroy']);

网络面板中显示的来自浏览器的请求是 DELETE https://website.fr/destroy/website/2(2 是我点击的网站的 ID)

任何帮助将不胜感激!

要实现这一点:

destroy(Website $website)

你的路线应该是:

Route::delete('/destroy/website/{website}', [WebsiteController::class, 'destroy']);

不是 /destroy/website/{id} 所以 Laravel 可以使用从前端传递的 id 注入模型

我建议的路线部分代码:

Route::delete('destroy-website/{website}', [WebsiteController::class, 'destroy']);