Download the PHP package fisharebest/laravel-floats without Composer
On this page you can find all versions of the php package fisharebest/laravel-floats. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-floats
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
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
.
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.