Php laravel雄辩模型无法存储十进制值
我使用的是Laravel5.7和PHP7.3,其中 我必须在数据库中存储十进制字段 表列说明如下所示Php laravel雄辩模型无法存储十进制值,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我使用的是Laravel5.7和PHP7.3,其中 我必须在数据库中存储十进制字段 表列说明如下所示 'commission_percentage', 'decimal(12,4)' 'commission_amount', 'decimal(12,4)' 我正试图使用eloquent模型在mysql中存储此列的十进制值 下面是这方面的示例代码 $per = 10.23; $commission = 2.1234; $createArr = [ 'c
'commission_percentage', 'decimal(12,4)'
'commission_amount', 'decimal(12,4)'
我正试图使用eloquent模型在mysql中存储此列的十进制值
下面是这方面的示例代码
$per = 10.23;
$commission = 2.1234;
$createArr = [
'commission_percentage' => $per,
'commission_amount' => $commission
];
MyModel::create($createArr);
我那能说会道的模特看起来像
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。我发现解决这个问题的方法是将变量键入“string”
它应该由迁移本身来处理。您能提供该文件的原始迁移代码吗?您能添加您使用的示例代码吗?您可能发送了带有
,
逗号作为小数的值seperation@N69S我已经添加了示例代码。我没有发送以“,”逗号作为小数点分隔的值。然后直接检查数据库中的字段格式类型。两个选项中的一个是错误的,input或DB。@sdebarun我们对此没有任何迁移。但问题在于Elount model或laravel数据库包没有按要求保存值。
$per = 10.23;
$commission = 2.1234;
$createArr = [
'commission_percentage' => (string) $per,
'commission_amount' => (string) $commission
];
MyModel::create($createArr);