我的表中有一个名为hoursWorked
的字段:
$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);
}
}
答案 0 :(得分:1)
默认情况下,雄辩的模型可以防止大规模分配。在使用create方法时,雄辩的是不会将值分配给受保护的属性。
您可以使用$guarded
属性
protected $guarded = [];
或$fillable
模型的\App\Models\Timesheet
属性
protected $fillable = ['HoursWorked'];