В моей модели я добавил поле $casts
, потому что мне нужно, чтобы Laravel дал мне поплавок. Моя база данных хранит ее в виде строки.
Итак, я сделал это в моей модели Score.php
:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Score extends Model
{
protected $fillable = [
'value', 'comment'
];
protected $casts = [
'user_id' => 'int',
'value' => 'float'
];
Это здорово, это бросает это. Однако это происходит слишком много десятичных знаков. Мне нужно, чтобы он занимал только 1 знак после запятой, до десятых долей.
Мои данные о конечной точке json выглядят так:
{
"id": 2,
"name": "Zed",
"avatar_path": null,
"score": {
"id": 2,
"value": 9.9000000000000003552713678800500929355621337890625,
"comment": null,
"user_id": 2,
"created_at": "2018-05-03 07:03:37",
"updated_at": "2018-05-03 07:03:41"
}
},
Я хочу, чтобы 9.9......
был просто 9.9
Возможно ли это?
В своей схеме я сделал все правильно, чтобы создать его как $table->decimal('value', 3, 1)
:
Schema::create('scores', function (Blueprint $table) {
$table->increments('id');
$table->decimal('value', 3, 1)->nullable(); //////// is this correct?