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
A mysqldump wrapper for laravel. Dump your table schemas and data into files.
Laravel tool helps to sync migrations without refreshing the database
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 |
