无法删除用户

时间:2018-11-18 15:11:21

标签: php laravel eloquent

您好,我试图删除用户,但是此功能无法正常工作:

public function deleteUser()
{
    $user = User::find($id);
    $user ->delete();
    return redirect('empresa');
}

错误:未定义的变量:id

3 个答案:

答案 0 :(得分:1)

希望这有助于或回答您的问题。试试这个;

public function deleteUser($id)
{
    User::find($id)->delete();

    return redirect('empresa');
}

答案 1 :(得分:1)

只是为了帮助您了解Nigel和Deepak在说什么:

deleteUser()必须接受一个名为$ id

的参数。
 deleteUser($id) { ... }

因此,当您调用deleteUser()时,请确保传递您的id(参数)值:

 deleteUser(17);

希望能帮助您了解他们在说什么。

答案 2 :(得分:0)

您首先必须找到要删除它们的用户:

$user = User::find($id);

然后,您将可以调用delete方法:

$user->delete();

您可能希望考虑处理该用户可能为空的可能性。有几种方法可以做到这一点:

  1. 在致电delete之前检查用户是否为空
  2. 找到用户时使用findOrFail方法

选项2将抛出一个ModelNotFoundException,您可以将其配置为在全局范围内处理此应用,并返回404页面或您想要的任何内容。

选项1:

public function deleteUser($id)
{
    $user = User::find($id);

    if (null !== $user) {
        $user->delete();
    }

    return redirect('empress');
}

选项2:

public function deleteUser($id)
{
    $user = User::findOrFail($id);

    $user->delete();

    return redirect('empress');
}

请注意,在选项2上,我们不需要进行空检查,因为如果使用findOrFail找不到用户,则会引发异常。