【发布时间】:2018-12-17 03:12:31
【问题描述】:
我的表中有一个名为 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);
}
}
【问题讨论】:
-
运行的查询在哪里?我们能看到吗?
-
我在答案中添加了这些信息
-
我还是没有看到查询?
-
查询是什么意思。我还没有为此编写任何 SQL。 Eloquent 负责查询
-
我解决了这个问题。问题是可填充数组中的一个类型。
标签: php mysql laravel eloquent lumen