Laravel number_format() 不正确,重新加载并更新到数据库时错误的数字转换

Laravel number_format() incorrect, bad number translation when reloaded and updated into database

我需要你的帮助来理解 Laravel 玩我和数字的神秘方式!

我对我的 blade.php 有一个看法,我有几个 :

{!! Form::text('lim_dma',number_format( $newclient->lim_dma,2,'.',','),['class' => 'form-control']) !!}

用户将第一次存储一个数字,例如10000,页面将从我的数据库重新加载数据,显示10,000.00

目前一切顺利。

我发现如果用户不更改页面中的任何内容和任何数据(在 Form::text 中),并第二次将数据提交到我的控制器中,Laravel 采用文本框中当前显示的内容(因此 10,000.00),但在我的数据库中将其更新为 10.00...

显然 Laravel 理解(严重)在 10,000.00 中显示的昏迷要感谢 number_format 在我的 blade.php.

我试过在我的数据库中使用 ma 变量的类型(我试过 double,我试过 float => 同样糟糕的结果...)。 我也试图通过使用 space 而不是 come 作为千位分隔符来欺骗 number_format,但是 Laravel 也不会被这个骗了...

你们是怎么做的,在 Laravel(我的是 5.1)中,允许用户存储通用数字(例如 100000 或 50000),转换它,或者用千位分隔符显示它而不干扰在控制器的功能和我的模型的更新部分之后(见下文)?

$newclient= Techdata::where('id_client','=',$id_client)->first();

$newclient->update($request->all());
Best Regards,

向您的 Techdata 模型添加一个修改器 (https://laravel.com/docs/5.1/eloquent-mutators):

public function setLimDmaAttribute($value) {
    $this->attributes['lim_dma'] = str_replace(',', '', $value);
}