【问题标题】:i want to add money format on my Laravel project我想在我的 Laravel 项目中添加货币格式
【发布时间】:2019-04-15 01:15:34
【问题描述】:

如何验证带小数部分的货币格式。

我的请求类似于12,133.00。好吧,你试过了,但到目前为止还不好。我是初学者。

public function store(Request $request)
{   
    $this->validate($request, [ 
       'price'=>'required|numeric',
    ]);
}

嗯,我没想到太多。

public function store(Request $request)
{   
     $this->validate($request, [ 
        'price'=>'required|numeric',
      ]);  

    $product->price=Input::get('price');

}

【问题讨论】:

  • @DelenaMalan 不,在这种情况下,他不想格式化它。正如进来的数据不应该已经是正确的。他假设您将只输入一个带小数的数字。 12356.1548 会变成 12, 356.15
  • 这不是我理解他的问题的方式。毕竟他使用了validate这个词。

标签: laravel


【解决方案1】:

你想要做的是使用原生 php number_format() 函数。 文档位于此处链接php.net。你要做的如下:

$product = new Product;
$product->price = number_format($request->price, 2, ".", ",");
  • 第一个参数将是您要格式化的数字。
  • 第二个参数是你想要的小数位数。
  • 第三个参数是您希望如何分隔小数。
  • 最后一个参数是您希望如何分隔千位。

您甚至可以将其简化为:

$product->price = number_format($request->price, 2);

希望这会有所帮助。

【讨论】:

  • 很高兴听到它
【解决方案2】:

您可以利用 Regex 并尝试类似的方法

$this->validate($request, [ 
   'price'=>"required|regex:/^[0-9]{1,3}(,[0-9]{3})*\.[0-9]{0,2}+$/",
]);

这将检查千位和小数。

应该适用于 1.00、10.00、100.00 1,000.00 等,但不会验证缺少逗号的 1000.00。

让我知道这是否按预期对您有用。

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 2018-04-01
    • 2010-09-22
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多