Php 未随create()插入空值

Php 未随create()插入空值,php,laravel,Php,Laravel,我的表格中有此字段: <label>Office Phone:</label><br> <input type="number" name="office_phone" value="{{ old('office_phone') }}" class="form-control"><br> @if ($errors->has('office_phone')) <span class=

我的表格中有此字段:

 <label>Office Phone:</label><br>
 <input type="number" name="office_phone"  value="{{ old('office_phone') }}" class="form-control"><br>
    @if ($errors->has('office_phone'))
               <span class="help-block">
                      <strong>{{ $errors->first('office_phone') }}</strong>
               </span>
    @endif
和create()方法:

但如果未提供输入,则不会插入空值:它会给出错误:

无效的日期时间格式:1366列的整数值不正确:“” 第一排的“办公室电话”

但是如果
office\u phone
有一些值,则可以很好地插入。我做错了什么

office_phone in database has Type int(10) default NULL and Null yes

如果未输入数据,则值将为空且
“”!=空
。所以,如果值为空,则将其替换为null。尝试以下操作:(在
返回用户::create()
之前)


如果未输入数据,则值将为空且
“”!=空
。所以,如果值为空,则将其替换为null。尝试以下操作:(在
返回用户::create()
之前)


在您的例子中,如果没有值,那么它传递的空字符串
'
在MYSQL中是空值。因此,对于整型列,该值是不允许的,但对于varchar,它将抛出此错误

所以你有两个选择:

  • 在mysql中更改为将默认值设置为0
  • 检查PHP端是否为空发送NULL或0到DB
更多参考:


在您的情况下,如果没有值,那么它将传递空字符串
'
,这在MYSQL中是空值。因此,对于整型列,该值是不允许的,但对于varchar,它将抛出此错误

所以你有两个选择:

  • 在mysql中更改为将默认值设置为0
  • 检查PHP端是否为空发送NULL或0到DB
更多参考:

return User::create([
   'office_phone'=>$data['office_phone]
office_phone in database has Type int(10) default NULL and Null yes
$data['office_phone'] = $data['office_phone'] === ""?NULL:$data['office_phone'];