我想创建一个带有浮点列的表。
$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'
);
}