fisharebest / laravel-floats
Laravel 迁移中的浮点数支持
1.5.0
2020-09-24 12:32 UTC
Requires
- php: ~5.6|~7.0
- illuminate/database: ~5.0|~6.0|~7.0|~8.0
Requires (Dev)
- php-coveralls/php-coveralls: ~2.0
- phpunit/phpunit: ~5.0|~8.0
README
laravel-floats
此包允许在 Laravel 5、Laravel 6 和 Laravel 7 中进行数据库迁移,以在 MySQL 中创建 FLOAT
列。
什么?你的意思是 Laravel 不支持浮点列吗?
很遗憾,不是的。它只支持 双精度 浮点列。如果你需要 单精度 浮点数,你需要使用 DB::raw()
。
尽管 Laravel 文档在 https://laravel.net.cn/docs/5.8/migrations 中指出
$table->float('amount', 8, 2);
等效于具有精度(总位数)和刻度(小数位数)的 FLOAT 列。
$table->double('amount', 8, 2);
等效于具有精度(总位数)和刻度(小数位数)的 DOUBLE 列。
你可以在 laravel/framework#3151 和许多其他问题中了解更多信息。
安装
composer require fisharebest/laravel-floats
Laravel 5.5 及以后的版本中,包发现会处理所有事情。如果你使用 Laravel 5.4 或更早的版本,你需要在 config/app.php
中替换一个别名。
'aliases' => [
...
'Schema' => \Fisharebest\LaravelFloats\Schema::class,
....
]
注意:这假设你正在使用 Laravel 通过别名自动加载你的外观。
如果你显式地使用 use Illuminate\Support\Facades\Schema;
导入 Laravel 的模式构建器,那么你需要将其更改为 use Fisharebest\LaravelFloats\Schema;
。
这个包是如何工作的?
我们扩展了 MySQL 语法,修改了 float()
的蓝图,然后将更新的语法绑定回 IoC 容器。