Сервер записывает объект javascript в виде строки вместо целого числа

У меня странная проблема, которую я не могу решить прямо сейчас.

Мой местный сайт (усадьба) пишет на странице объекты javascript, вот так

var carriageCosts = [{"id":1,"weight":0,"cost":12,"created_at":"2015-10-20 06:25:13","updated_at":"2015-10-20 06:25:13"}]

Вес и стоимость являются целыми числами. После развертывания в digitalocean с помощью кузницы это записывается так

var carriageCosts = [{"id":"1","weight":"0","cost":"12","created_at":"2015-10-21 02:49:37","updated_at":"2015-10-21 02:49:37"}]

Вес и стоимость теперь струны!

Это вызывает ошибки с JavaScript. Кто-нибудь видел это раньше? Некоторое направление в решении этого будет высоко ценится.

Данные отправляются в блэйд-вид примерно так

return view('quote.create')
    ->with([
        'customers' => $customers,
        'sellPrices' => \App\SellPrice::all(),
        'coreCaps' => \App\CoreCap::where('available', 1)->get(),
        'threePhaseCostings' => \App\ThreePhaseCosting::all()->first()
    ]);

Blade View записывает данные

var carriageCosts = {!! $carriageCosts !!};

Столбцы Вес и Стоимость в базе данных являются целыми.

Сервер разработки возвращает объекты Eloquent с правильными типами данных, т.е. целые числа являются целыми. Рабочий сервер возвращает объекты Eloquent с неверными типами данных, то есть целые числа являются строками.

Есть какая-то другая конфигурация сервера, но я не могу ее найти...

1 ответ

В вашем json_encode() можно использовать вариант JSON_NUMERIC_CHECK

echo json_encode($arr, JSON_NUMERIC_CHECK);

Ссылочные константы php json

Другие вопросы по тегам