Мне любопытно, как laravel проверяет число, у меня был этот код:
$valid = \Validator::make(['lat' => '2.3711025426955', 'lng' => '99.0805054179688'], [ 'lat' => 'required_with:lng|digits_between:1,15', 'lng' => 'required_with:lat|digits_between:1,15', ]); dd($valid->fails());
который недействителен , он будет работать, если бы у нас были номера без кавычек. Однако какой бы входной тип входного поля пропускал lat
и long
через html-форму. Поэтому он считал строку недействительной. Я попытался выполнить dd($request->all()
и вывод выглядит следующим образом:
array:2[ "lat" => "2.3711025426955" "lng" => "99.0805054179688" ]
Я передаю его с помощью таких форм, как:
<input type="text" name="lat"> <input type="number" name="lat">
Оба не работают, это довольно беспокоит некоторых, что я только работаю на бэкэнд, но понимаю, что эта проблема возится. Я все равно использую Laravel 5.1.26 , надеюсь, что кто-то прольет свет на это – раньше я вполне уверен, что он работает даже с кавычками. Не уверен, что не так, но laravel использует функцию php is_numeric
но почему-то не распознал мой ввод (с кавычками) как число.
Изменить, чтобы уточнить, я получил эту ошибку: The lat must be between 1 and 15 digits.
я бы сказал, что это странно. К странности is_numeric('2.3711025426955')
действительно правильно распознает мои номера. Теперь я намного больше .. смущен.