我有一个领域叫 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);
}
}
1条答案
按热度按时间b5lpy0ml1#
雄辩的模型在默认情况下可以防止大规模分配。在使用create方法时,eloquent不会为受保护的属性赋值。
你可以用
$guarded
财产或者
$fillable
财产\App\Models\Timesheet
模型