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'];