我在路由web.php
文件中有以下代码。
Route::resource('dailyrevenue', DailyRevenueController::class)->middleware('auth');
然后在我的DailyRevenueController.php
public function destroy(DailyRevenue $revenue)
{
$revenue->delete();
return redirect()->back();
}
在我的vue3代码中:
const submit = function (id) {
const check = confirm("Are you sure to delete ?")
if (check) {
Inertia.delete(route('dailyrevenue.destroy',id), {
id: id,
method: 'delete',
forceFormData: true
})
}
}
最后在模板中:
<template #cell(actions)="{item: tax}">
<form method="delete" @submit.prevent="submit(tax.id)">
<input type="hidden" name="_method" value="delete"/>
<button type="submit">Delete</button>
</form>
</template>
现在请求到达方法。但是没有任何内容被删除。发送的请求是DELETE请求。它返回的不是302响应,而是303(参见其他)。
感谢社区帮助。谢谢。
我找到了解决方案。其背后的原因是变量名。在url端点中,变量名声明为dailyrevenue
,在方法中声明为$revenue
。
你可以通过输入php artisan route:list
找到你的url变量。
我发现url变量名必须与方法中的变量名匹配。
希望这对其他人也有帮助。