服务器将javascript对象写为字符串而不是整数

时间:2015-10-21 03:17:05

标签: javascript laravel laravel-5.1 laravel-forge

我有一个奇怪的问题,我现在无法解决。

我的本​​地网站(宅基地)正在页面中写出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()
    ]);

刀片视图写出数据

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

数据库中的权重和成本列都是整数。

开发服务器返回具有正确数据类型的Eloquent对象,即int是int。生产服务器返回具有不正确数据类型的Eloquent对象,即int是字符串。

有一些服务器配置不同但我找不到它......

1 个答案:

答案 0 :(得分:0)

json_encode()可以使用选项JSON_NUMERIC_CHECK

echo json_encode($arr, JSON_NUMERIC_CHECK);

参考php json constants