fisharebest/laravel-floats
| Install | |
|---|---|
composer require fisharebest/laravel-floats |
|
| Latest Version: | 1.5.0 |
| PHP: | ~5.6|~7.0 |
| Laravel: | 5 – 8 |
| License: | MIT |
| Last Updated: | Oct 15, 2022 |
| Links: | GitHub · Packagist |
laravel-floats
This package allows database migrations in Laravel 5, Laravel 6 and Laravel 7 to create FLOAT columns in MySQL.
Huh? You mean that Laravel does not support floating point columns?
Sadly no. It only supports double-precision floating point columns.
If you want single-precision floating point, you need to use DB::raw().
This is despite the Laravel documentation at https://laravel.com/docs/5.8/migrations which states:
$table->float('amount', 8, 2);FLOAT equivalent column with a precision (total digits) and scale (decimal digits).
$table->double('amount', 8, 2);DOUBLE equivalent column with a precision (total digits) and scale (decimal digits).
You can read all about it at https://github.com/laravel/framework/issues/3151 and many other issues.
| In your migration | Laravel 5.0 - 7.0 | With this package |
|---|---|---|
$table->float('col'); |
DOUBLE(8,2) |
FLOAT |
$table->float('col', 0); |
DOUBLE |
FLOAT |
$table->float('col', 5); |
DOUBLE(5,2) |
FLOAT |
$table->float('col', 5, 3); |
DOUBLE(5,3) |
FLOAT(5,3) |
$table->double('col'); |
DOUBLE |
DOUBLE |
$table->double('col', 0); |
DOUBLE |
DOUBLE |
$table->double('col', 5); |
DOUBLE |
DOUBLE |
$table->double('col', 5, 3); |
DOUBLE(5,3) |
DOUBLE(5,3) |
Installation
composer require fisharebest/laravel-floats
Package discovery takes care of everything on Laravel 5.5 and later.
If you're using Laravel 5.4 or earlier, you'll need to replace an alias in config/app.php.
'aliases' => [
...
'Schema' => \Fisharebest\LaravelFloats\Schema::class,
....
]
NOTE: this assumes you are using Laravel to autoload your facades using the aliases.
If you explicitly import Laravel's schema builder using use Illuminate\Support\Facades\Schema; then you will need to change this to use Fisharebest\LaravelFloats\Schema;.
How does this package work?
We extend the MySQL Grammar, modify the blueprint for float(), and then
bind the updated grammar back into the IoC container.
Related Packages
Developer tool helps to sync migrations without refreshing the database
A mysqldump wrapper for laravel. Dump your table schemas and data into files.
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 1.5.0 | ~5.6| | ~5.0| | MIT | |
| 1.4.0 | ~5.6| | ~5.0| | MIT | |
| 1.3.0 | ~5.6| | ~5.0| | MIT | |
| 1.2.0 | ~5.6| | ~5.0| | MIT | |
| 1.1.0 | ~5.6| | 5.0.*| | MIT | |
| 1.0.0 | ~5.6| | 5.0.*| | MIT |
