Php 如何在Laravel5请求类中验证金钱

Php 如何在Laravel5请求类中验证金钱,php,validation,laravel,laravel-5.1,Php,Validation,Laravel,Laravel 5.1,我的验证类如下所示 <?php namespace App\Http\Requests; use App\Http\Requests\Request; class PaymentRequest extends Request { /** * Determine if the user is authorized to make this request. * * @return bool */ public function a

我的验证类如下所示

<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;

class PaymentRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $rules = array(

                       'invoiceid'=>'required',
                       'recieved_amount'=>'required',
                       'ref_no'=>'required',
                       'date'=>'required',
                       'comment'=>'required'
                       );


    }
}

您可以使用此选项,例如(“金额”指货币数量):


正则表达式适用于“12”或“12.5”或“12.05”等数量。如果您想要的小数点多于2,请将“2”替换为所需的允许小数。

什么是“钱”?这不是一个数字吗?进行自定义验证。@是的,我想可能是浮动的,但我不知道验证的规则,你能帮我解决吗?如果“货币”是指“我们表示货币的格式”,它与你居住的国家有关。美国的一千美元和西班牙的一千美元不一样。@Amarnasan实际上。。。一千美元在美国、西班牙或任何其他国家都是一样的。因此我将在我的规则数组中添加
'amount'=>“required | regex://^\d*(\.\d{2})?$/”
这一行,因为点部分是可选的,它对integer和floatYes都有效。但是,请为您的国家使用正确的货币格式(例如,在美国,他们使用逗号而不是点)。问题是,我的公司同时使用美元和印度卢比,还有一些其他国家的货币,如阿联酋和土耳其,这就是为什么我只是添加了一个通用验证。我稍微更改了regex,允许使用1或2个十进制数字,看一看。我会再稍微修改一下:
regex:/^\d+(\.\d{1,2})?$/
来禁止类似
.22
public static $rules = array(
  'amount' => "required|regex:/^\d+(\.\d{1,2})?$/"
));