Итак, я нахожусь в процессе обновления старого Laravel проекта с 5,3 до 5,4 (планируем перейти на 5,8), но у меня возникла проблема с моими модульными тестами, в которой удваивается теряют свои десятичные разряды.
Вот пример одного такого теста ( да, мои тесты взаимодействуют с базой данных ):
$this->user->message_score = 3.42;
$this->user->save();
echo $this->user->fresh()->message_score; // 3
Миграция для таблицы:
$table->double('message_score')->nullable();
Какое бы число я ни установил, десятичные разряды теряются. Это не округление вверх или вниз, 3,42 становится 3, как и 3,99.
Тинкер не имеет такой же проблемы.
I предположим, что я упускаю что-то простое.
Любая помощь приветствуется.
EDIT
Итак, я запустил миграцию, чтобы обновить точность message_score
, и я столкнулся с тем же проблема. Длина, отображаемая в базе данных до запуска миграции, составляла (8,2)
, а выполненная мною миграция подтолкнула ее до (10,8)
. Миграция ниже:
DB::statement('ALTER TABLE `users` MODIFY `message_score` DOUBLE(10,8) NOT NULL DEFAULT 0.0;');