You need to enable JavaScript to run this app. Laravel使用Checkbox修改用户is_active状态报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Laravel使用Checkbox修改用户is_active状态报错如何解决

问题原因

  1. 报错核心原因:你将$userId赋值为auth()->user()->id,该值是整数类型的用户ID,并非用户模型实例,无法为整数类型赋值属性、调用save方法。
  2. checkbox提交特性:未勾选的checkbox不会被浏览器发送到后端,直接获取request('is_active')会拿到null,需要按你的业务逻辑做值转换。
  3. 你的业务需求是勾选时存0、未勾选存1,和常规checkbox逻辑相反,需要单独做适配。

解决方案

1. 修改路由处理代码

直接操作用户模型实例,同时适配业务逻辑转换is_active值:

Route::post('/is_active/save', function () {
    // 获取当前登录用户的模型实例
    $user = auth()->user();
    // 存在is_active参数即勾选,存0;未勾选不存在参数,存1
    $user->is_active = request()->has('is_active') ? 0 : 1;
    $user->save();

    return redirect("people");
})->middleware(['auth']);

2. 可选:前端状态回显

如果需要进入页面时checkbox自动匹配数据库当前的is_active状态,修改前端checkbox代码如下:

<input type="checkbox" name="is_active" {{ auth()->user()->is_active == 0 ? 'checked' : '' }}>

内容的提问来源于stack exchange,提问作者Julia Cassemiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 14:36:03