У меня есть 2 decimal(10,8)
поля на mysql с этой миграцией:
$table->decimal('lat', 10, 8)->nullable();
$table->decimal('lng', 10, 8)->nullable();
Через конечную точку API я нахожу широту и долготу.
API возвращает это:
$geo->lat = 46.0081326;
$geo->lng = 8.9761892;
НО при настройке моего поля модели следующим образом:
$estate->lat = $geo->lat;
$estate->lng = $geo->lng;
в БД для полей устанавливается значение 46.00000000
и 8.00000000
.
Из-за этого Я попытался установить приведение в модели следующим образом:
protected $casts = ['lat' => 'double', 'lng' => 'double'];
Я также попытался привести к определению c десятичное
protected $casts = ['lat' => 'decimal:8', 'lng' => 'decimal:8'];
Но не повезло. Я по-прежнему получаю 46.00000000
и 8.00000000
внутри БД.
Я также пытался удалить Laravel casts
и принудительно заставить тип как этот
$estate->lat = (double) $geo->lat;
Но я все еще становлюсь пустым десятичные точки.
Это 2 новых новых столбца, но я попытался проверить, есть ли в приложении мутатор setLatAttribute()
, но его нет.