我需要你的帮助才能理解Laravel和我一起玩的神秘方式和数字!
我对我的blade.php有一个看法,我有几个:
{!! Form :: text(' lim_dma',number_format($ newclient-> lim_dma,2,'。',','),[' ; class' =>' form-control'])!!}
用户将首次存储一个数字,例如 10000 ,该页面将从我的数据库重新加载数据,显示 10,000.00
到目前为止一切都很好。
我发现,如果用户没有更改页面中的任何内容和任何数据(在Form :: text中),并且第二次将数据提交到我的Controller中,Laravel会采用&#39 ; s当前显示在文本框中(所以 10,000.00 ),但在我的数据库中将其更新为 10.00 ...
由于我的blade.php中的 number_format ,Laravel显然(严重地)理解了 10,000.00 中的昏迷。
我试过在我的数据库中使用ma变量的类型(我试过double,我试过float =&gt;同样糟糕的结果......)。 我也试过通过使用空格而不是来作为千分隔符来欺骗number_format,但是Laravel也不会被这个骗过...... < / p>
你是怎么做的人,在Laravel(我的是5.1),允许用户存储通用号码(例如100000或50000),转换它,或用千位分隔符显示它而不会干扰控制器&#39 ; s函数和我模型的更新部分(见下文)?
$ newclient = Techdata :: where(&#39; id_client&#39;,&#39; =&#39;,$ id_client) - &gt; first();
$ newclient-&GT;更新($请求 - &GT;所有());
最诚挚的问候,
答案 0 :(得分:0)
在您的Techdata
模型(https://laravel.com/docs/5.1/eloquent-mutators)中添加mutator:
public function setLimDmaAttribute($value) {
$this->attributes['lim_dma'] = str_replace(',', '', $value);
}