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})?$/"
));