【发布时间】:2021-03-09 16:45:35
【问题描述】:
所以我目前正在尝试通过单击删除按钮从 mySql 数据库中删除用户。该应用是 Laravel 后端,React 前端。
当我点击删除按钮时,它返回一个 404 错误 'DELETE http://localhost:8000/delete/5 404 (Not Found)'
onDelete 方法:
onDelete(user_id) {
axios.delete('http://localhost:8000/users/delete/' + user_id)
.then((response) => {
})
}
用户控制器
public function destroy($id)
{
$user = User::find($id);
$user->delete();
}
代码中的按钮:
<button onClick={this.onDelete.bind(this, Users.id)}>Delete</button>`
网络路由:
Route::delete('users/delete/{id}', 'Api\UserController@destroy');
错误包含正确的 id(错误代码 url 中的最后一个数字是我要删除的用户的正确 id)但我不知道为什么它给了我 404 错误。
更新原来删除路线不在我的路线列表中。 (php工匠路线:列表)
Route::get('userList', 'Api\UserController@index');
Route::post('users/store', 'Api\UserController@store');
Route::delete('users/delete/{id}', 'Api\UserController@destroy');
奇怪,因为 get 和 post 路由在路由列表中,但不是我的 delete 路由。 (上面的代码在我的 web.php 文件中)所有三个方法(索引、存储和销毁)都在我的 UserController 控制器中:
public function index()
{
$result = User::all();
return $result;
}
public function store(Request $request)
{
$user = new User();
$user->name = $request->user_name;
$user->email = $request->user_email;
$user->phone_number = $request->user_phoneNumber;
$user->account_type = $request->user_accType;
$user->qualifications = $request->user_qualifications;
$user->save();
}
public function destroy($id)
{
$user = User::find($id);
$user->delete();
}
【问题讨论】:
-
使用get方法
Route::get('users/delete/{id}', 'Api\UserController@destroy'); -
这个问题也可能有帮助:stackoverflow.com/questions/44113969/…
-
如果你的 Laravel 处于本地开发模式,它应该给你超过 404。查看你的日志以获取详细信息。您确定该路线在正确的组中吗?上面的 cmets 建议您使用错误的方法,但这会给您“405 Method not Allowed”错误。检查
artisan route:list以确保它与预期的 URL 存在。 -
@miken32 你知道了,删除方法不在我的路由列表中。我对这一切都很陌生,我该如何把它放在那里?非常感谢
-
@miken32 尝试了所有方法,最终解决方法是使用 'php artisan route:clear' 命令...成为 Laravel 的菜鸟很痛苦,哈哈...感谢您的帮助。