У меня есть это поле в форме:
<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
Это не обязательное поле. Предполагается вставить нулевые значения в базу данных, если не вводится никаких данных.
У меня есть это правило проверки:
'office_phone'=>'integer',
И метод create ():
return User::create([
'office_phone'=>$data['office_phone]
Но нулевое значение не вставляется, если не вводится никаких данных: оно выдает ошибку:
Неверный формат даты и времени: 1366 Неверное целочисленное значение: » для столбца
«office_phone» в строке 1
Но если office_phone
имеет какое-то значение, он вставлен нормально. Что я делаю неправильно?
office_phone in database has Type int(10) default NULL and Null yes
В вашем случае, что происходит, когда нет значения, то его передача пустой строки ''
который является пустым значением в MYSQL. Так что он выдает эту ошибку, так как для целочисленного столбца такое значение не допускается, но для varchar это нормально.
Итак, у вас есть два варианта:
Для получения дополнительной ссылки:
Вставьте пустую строку в столбец INT для SQL Server
Если вы не введете данные, то ваше значение будет пустым и "" != NULL
, Поэтому, если значение пусто, замените его на ноль. Попробуй это return User::create()
)
$data['office_phone'] = $data['office_phone'] === ""?NULL:$data['office_phone'];