Laravel 5 controller sending JSON integer as string

后端 未结 3 1521
渐次进展
渐次进展 2020-12-02 23:09

On my development server the JSON response from the Laravel 5 controller shows the data in the correct types.

e.g

imdb_rating: 7.6
imdb_votes: 6271
<         


        
3条回答
  •  忘掉有多难
    2020-12-02 23:21

    Make sure to use MySQL Native Driver which will support native data types.

    It is possible to convert integer and float columns back to PHP numbers by setting the MYSQLI_OPT_INT_AND_FLOAT_NATIVE connection option, if using the mysqlnd library. If set, the mysqlnd library will check the result set meta data column types and convert numeric SQL columns to PHP numbers, if the PHP data type value range allows for it. This way, for example, SQL INT columns are returned as integers.

    MySQL Client Library will return all fields as strings.

    Another solution would be to use json_encode options with JSON_NUMERIC_CHECK.

    For example:

    return response()->json(["foo" => "bar"], 200, [], JSON_NUMERIC_CHECK);
    

提交回复
热议问题