Tengo un formulario que contiene un campo para que el usuario ingrese el valor del monto de cierto pago. Este campo es una entrada de tipo número.
La regla de validación en Laravel para esta entrada es:
'amount' => 'required|numeric' Cuando ingreso la cantidad en inglés como: 1500 => La validación pasa y todo está bien.
Pero cuando ingreso la cantidad en árabe como: ١٥٠٠ => La validación falla con el siguiente mensaje de error:
"validación.numeric"
¿Debo validar este campo manualmente o hay otra solución a este problema?

Tal vez puedas crear tu propio tipo de validación.
Puede agregar algo como esto a su método de arranque en app/Providers/AppServiceProvider.php .
Validator::extend('arabic_numbers', function ($attributes, $value, $parameters, $validation) { $arabic_numbers = [ '٥', '١', // add more ]; $input = $value; if (!$input) { return false; } $chars = preg_split('//u', $input, -1, PREG_SPLIT_NO_EMPTY); foreach ($chars as $char) { if (!in_array($char, $arabic_numbers)) { return false; } } return true; }); Puede agregar a su regla existente, por ejemplo, required|arabic_numbers .
O usa algo como esto:
$input = '١'; $validator = Validator::make([ 'user_input' => $input, ], [ 'user_input' => 'required|arabic_numbers' ]; if ($validator->fails()) { // }También puede usar de muchas otras formas, por ejemplo, en una solicitud personalizada:
public function rules() { return [ 'something' => 'required|arabic_numbers', ]; }Espero que esto ayude.