Sie sollten nicht regex
zu tun haben um das zu lösen. Nehmen Sie den folgenden Test zum Beispiel:
$input = ["wholesale_price" => 0.005];
$rules = ["wholesale_price" => "numeric|between:0.001,99.99"];
Solange Sie die numeric
Regel benötigen, dann wird between
den Wert behandeln als Zahl validiert (int
, float
, double
, etc.) Solange Ihr don‘ t übergeben Sie einen Zeichenfolgenwert wie $0.001
, oder entfernen Sie alle unerwünschten Zeichen vor der Überprüfung, diese Methode wird True für alles über 0
und den von Ihnen festgelegten Maximalwert (derzeit 99.99
) zurückgeben, aber Sie können es so hoch wie Sie möchten.)
Hier ist eine einfache Testvorlage:
$input = [
"price" => 0
];
$input2 = [
"price" => 0.001
];
$rules = [
"price" => "numeric|between:0.001,99.99",
];
$validator = \Validator::make($input, $rules);
$validator2 = \Validator::make($input2, $rules);
dd($validator->passes());
// Returns false;
dd($validator2->passes());
// Returns true;
Hinweis: Funktioniert auch wenn price
ein String-Wert ist der Streifen nur die $
, wenn Sie, dass auf dem Server sind zu senden.
Hoffe, dass hilft!
Verwenden Sie einen benutzerdefinierten Validator. https://laravel.com/docs/5.2/validation#custom-validation-rules – ceejayoz