我正在使用 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)
任何幫助將不勝感激!
uj5u.com熱心網友回復:
為此:
destroy(Website $website)
你的路線應該是:
Route::delete('/destroy/website/{website}', [WebsiteController::class, 'destroy']);
不是 /destroy/website/{id} 所以 Laravel 可以使用從前端傳遞的 id 注入模型
uj5u.com熱心網友回復:
我建議的路線部分代碼:
Route::delete('destroy-website/{website}', [WebsiteController::class, 'destroy']);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/466019.html
