Сервер записывает объект 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