Я хочу создать таблицу со столбцом с плавающей запятой.
$table->float('TaxRate',5,5)->default(0.00000);
Но Mysql воспринимает это как DOUBLE.
Как это работает?
Я хочу создать таблицу со столбцом с плавающей запятой.
$table->float('TaxRate',5,5)->default(0.00000);
Но Mysql воспринимает это как DOUBLE.
Как это работает?
Это потому, что Illuminate\Database\Schema\Grammars\MySqlGrammar
преобразует float
в double
. Я не знаю, почему они заставляют использовать double
.
Переопределить MySqlGrammar
будет проблематично, так как вам придется переопределить больше классов.
Вы можете использовать необработанный запрос mysql для создания таблицы, как показано ниже.
public function up() {
DB::unprepared('CREATE TABLE `temp`(
`id` INT NOT NULL AUTO_INCREMENT,
`tax_rate` FLOAT(5, 5) NOT NULL DEFAULT 0.00000,
...
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
);
}