服务器将javascript对象写入字符串而不是整数
我有一个奇怪的问题,我现在无法解决 我的本地站点(homestead)正在这样写页面中的javascript对象服务器将javascript对象写入字符串而不是整数,javascript,laravel,laravel-5.1,laravel-forge,Javascript,Laravel,Laravel 5.1,Laravel Forge,我有一个奇怪的问题,我现在无法解决 我的本地站点(homestead)正在这样写页面中的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"}] 重量和成本是整数。在使用forge部署到digitalocean之后,它就这样被写出来了 var carriageCosts = [{"id
var carriageCosts = [{"id":1,"weight":0,"cost":12,"created_at":"2015-10-20 06:25:13","updated_at":"2015-10-20 06:25:13"}]
重量和成本是整数。在使用forge部署到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 !!};
数据库中的权重和成本列都是整数
Development server正在返回具有正确数据类型的雄辩对象,即int是int。生产服务器正在返回数据类型不正确的有说服力的对象,即int是字符串
有一些不同的服务器配置,但我找不到它…在您的json\u encode()
中可以使用选项json\u NUMERIC\u CHECK
echo json_encode($arr, JSON_NUMERIC_CHECK);
参考那么生成它的代码是什么?生成它所使用的确切数据是什么?如果这是一个问题,您不能使用
parseInt([string\u value\u here])
将其更改回整数吗?@jlam55555silly@jlam55555执行两次转换而不是解决问题的根源是愚蠢的。“差不多整数变成了字符串”——没错。这就是为什么首先找出它发生的原因很重要,不要假装一切都很好。@jlam55555,除非我已经成为会员近6年了,但谢谢你:-DIt也解决了问题的后果,而不是问题的根源:因为json_encode
如果数据很好,工作正常。@zerkms是的,可能是对的,需要在从db返回时捕获,但我在php中的MYSQL INT中也看到过这种情况