雄辩:插入0.00而不是实际的浮点值

e3bfsja2  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(358)

我有一个领域叫 hoursWorked 在我的table上:

$table->float('HoursWorked',2,2);

在mysql中:

+-------------------+-------------+------+-----+---------+-------+
| Field             | Type        | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| HoursWorked       | double(2,2) | NO   |     | NULL    |       |

在我的模型中,我指定此字段在$casts数组中是double(2,2):

protected $casts = [
        'hoursWorked' => "double(2,2)"
];

字段被标记为可填充
我用以下格式传递json对象:

...Some data
 "hoursWorked":"6.55",
...Some data

我稍后将其转换为数组并将其传递给 ::create 模型的方法。但是,在插入之后(没有任何错误发生),存储在数据库中的数据是0.00。我试着把它取下来 " " 但没用。有什么想法吗。
编辑:以下是运行查询的代码:

$m = \App\Models\Timesheet::class;
foreach($request->json()->get('timesheets') as $timesheet){
    $validator = Validator::make($timesheet, $m::$rules, ['required' => trans("errors.required_field")]);
    if ($validator->fails()) {
        break;
    }else{
         $m::create($timesheet);
    }
}
b5lpy0ml

b5lpy0ml1#

雄辩的模型在默认情况下可以防止大规模分配。在使用create方法时,eloquent不会为受保护的属性赋值。
你可以用 $guarded 财产

protected $guarded = [];

或者 $fillable 财产 \App\Models\Timesheet 模型

protected $fillable = ['HoursWorked'];

相关问题