Send Number Using HTML Form to Laravel

2019-08-08 19:39发布

I am curious on how laravel validates number, i had this code:

$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());

which is invalid, it will work if we had the numbers without quotation marks. However, whatever input type of the input field to pass lat and long through html form. It regarded as string therefore invalid. I tried to dd($request->all() and the output are like:

array:2[
        "lat" => "2.3711025426955"
        "lng" => "99.0805054179688"
]

I pass it using forms like:

    <input type="text" name="lat">
    <input type="number" name="lat">

Both aren't working, it's rather bother some that i only works on backend but realize this problem messing around. I am using Laravel 5.1.26 anyway, hope someone shed some light on this - previously i'm pretty certain it works even with quotation marks. Not sure, what's wrong but, laravel uses php function is_numeric but somehow did not recognize my input (with quotation marks) as number.

Edit to clarify, i got this error: The lat must be between 1 and 15 digits. which is kind of weird, i'd say. To the weirdness is_numeric('2.3711025426955') is actually recognize my numbers correctly. Now i'm much more.. confused.

0条回答
登录 后发表回答