拉拉维尔更新查询

2022-08-30 17:28:29

我正在尝试根据电子邮件更新用户,没有ID,是否有一种方法可以在没有原始查询的情况下执行此操作。

当前错误

{“error”:{“type”:“ErrorException”,“message”:“Creating default object from empty value”,“file”:“C:\wamp\www\celeb-jim\app\controllers\SignupController.php”,“line”:189}}

我的代码

    public function changeAccountStatus ($plan, $userEmail ){
        $UpdateDetails = User::where('email', '=',  $userEmail)->first();
        $UpdateDetails->member_type = $plan;
        $UpdateDetails->save();
    }

答案 1

您可以使用Laravel查询构建器,但这不是执行此操作的最佳方法

检查Wader在下面的答案,了解雄辩的方式 - 这更好,因为它允许您检查是否有与电子邮件地址匹配的用户,如果没有,则处理错误。

DB::table('users')
        ->where('email', $userEmail)  // find your user by their email
        ->limit(1)  // optional - to ensure only one record is updated.
        ->update(array('member_type' => $plan));  // update the record in the DB. 

如果您有多个字段要更新,则只需在末尾向该数组添加更多值即可。


答案 2

试试这样做。

User::where('email', $userEmail)
       ->update([
           'member_type' => $plan
        ]);

推荐