【问题标题】:General error: 1364 Field 'status' doesn't have a default value一般错误:1364 字段“状态”没有默认值
【发布时间】:2021-07-30 22:50:28
【问题描述】:

我正在使用 Laravel 8 开发我的项目,在这个项目中,我制作了一个用于添加用户的页面。我还添加了一个status 的表单字段,用于确定用户是否激活了它的帐户:

<select class="form-control" name="status">
   <option value="1">Active</option>
   <option value="0">Deactive</option>
</select>

在控制器处,我添加了以下内容:

public function store(Request $request)
{
    $validate_data = Validator::make(request()->all(),[
        'name' => 'required|min:4',
        'email' => 'required|email|unique:users',
        'status' => 'required',
        'password' => 'required|min:6'
    ])->validated();

    $creation = User::create([
        'name' => $validate_data['name'],
        'email' => $validate_data['email'],
        'status' => $validate_data['status'],
        'password' => $validate_data['password']
    ]);

    if(!$creation){
        return '1003';
    }
}

但现在我得到了这个错误:

Illuminate\Database\QueryException SQLSTATE[HY000]:一般错误: 1364 字段“状态”没有默认值(SQL:插入 users (name, email, password, updated_at, created_at) 值(somename,someemail,somepassword,2021-05-09 06:59:44, 2021-05-09 06:59:44))

那么这里出了什么问题?我该如何解决这个问题?

非常感谢你们的任何想法或建议......

提前致谢。

【问题讨论】:

    标签: php laravel laravel-8


    【解决方案1】:

    您需要将status 放入模型的fillable 数组中,guarded = []; 添加到模型中。

    用户模型

    User
    {
        $fillable = [
            // Add status here with other field
        ];
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-23
      • 2021-02-28
      • 2021-10-13
      • 2017-03-02
      • 2020-02-03
      • 2020-02-27
      • 2020-07-23
      • 2016-06-13
      相关资源
      最近更新 更多