6

我想创建一个带有浮点列的表。

$table->float('TaxRate',5,5)->default(0.00000);

但是Mysql把这个当成DOUBLE了。

在此处输入图像描述

这是如何工作的?

4

1 回答 1

3

这是因为Illuminate\Database\Schema\Grammars\MySqlGrammar转换floatdouble. 我不知道他们强制它使用的原因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'
    );
}
于 2016-11-21T13:54:34.467 回答