[英]laravel eloquent model not able to store decimal values
我正在使用 Laravel 5.7 和 PHP 7.3 我必須在數據庫中存儲十進制字段
表列描述如下
'commission_percentage', 'decimal(12,4)'
'commission_amount', 'decimal(12,4)'
我正在嘗試使用 eloquent model 將此列的十進制值存儲在 mysql 中。
這是示例代碼。
$per = 10.23;
$commission = 2.1234;
$createArr = [
'commission_percentage' => $per,
'commission_amount' => $commission
];
MyModel::create($createArr);
我的 eloquent model 看起來像
class MyModel extends Model
{
protected $table = 'my_table';
protected $guarded = ['id'];
protected $casts = [
'commission_percentage' => 'decimal:4',
'commission_amount' => 'decimal:4'
];
}
而且我也試過
protected $casts = [
'commission_percentage' => 'float',
'commission_amount' => 'float'
];
但沒有運氣。 我仍然在數據庫中獲得 10.0000 和 2.0000。
即使我嘗試使用原始查詢插入值
DB::insert('insert into my_table (commission_percentage,commission_amount ) values(?, ?)', [$per, $commission]);
但是運氣不好,因為我仍然在數據庫中獲得 10.0000 和 2.0000。
我為此找到的解決方法是將變量類型轉換為“字符串”
$per = 10.23;
$commission = 2.1234;
$createArr = [
'commission_percentage' => (string) $per,
'commission_amount' => (string) $commission
];
MyModel::create($createArr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.