6

フロート列を持つテーブルを作成したい。

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

しかし、Mysql はこれを DOUBLE と見なします。

ここに画像の説明を入力

これはどのように機能しますか?

4

1 に答える 1

3

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'
    );
}
于 2016-11-21T13:54:34.467 に答える