我正在尝试构建一个功能,用户可以在登录时删除自己的帐户。我很难找到任何示例或逻辑/最佳实践。
控制器如下所示:
public function postDestroy() {
$user = User::find(Auth::user()->id);
$user = DB::delete('delete from users')->user(id);
return Redirect::route('site-home')->with('global', 'Your account has been deleted!');
}
我正在尝试抓取当前的Auth(登录)用户并使用他们的ID从数据库中删除它们。然后将它们发送到主页并附上一条消息。
此外,我是否需要确保在此过程中正确关闭会话,例如Auth :: logout(); ?
我对Laravel很新,所以任何帮助都会受到赞赏。
答案 0 :(得分:7)
不确定您的路由是什么样的,但这应该可以胜任。
$user = \User::find(Auth::user()->id);
Auth::logout();
if ($user->delete()) {
return Redirect::route('site-home')->with('global', 'Your account has been deleted!');
}
您应该在删除前注销用户。
答案 1 :(得分:0)
你只需要这样做:
$user=auth()->user();
$user->delete();