【问题标题】:Cant delete users无法删除用户
【发布时间】:2019-04-21 02:06:18
【问题描述】:

您好,我正在尝试删除用户,但此功能不起作用:

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

错误:未定义变量:id

【问题讨论】:

  • 您希望在哪里设置$id
  • $id 变量在哪里获得它的价值伙伴?
  • 也许您应该为$id 传递一个值,例如:public function deleteUser($id) {...} ...
  • 请在您的问题中添加更多详细信息

标签: php laravel eloquent


【解决方案1】:

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

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

    return redirect('empresa');
}

【讨论】:

  • @JuanSpada Yh,如果它有效,你应该将它标记为答案,它可以帮助其他人稍后会参考这个
【解决方案2】:

只是为了帮助您了解 Nigel 和 Deepak 所说的内容:

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

 deleteUser($id) { ... }

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

 deleteUser(17);

希望这可以帮助您了解他们在说什么。

【讨论】:

    【解决方案3】:

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

    $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 找不到用户,则会引发异常。

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 2018-02-01
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      相关资源
      最近更新 更多