我想将一个数组从Laravel分配给一个JavaScript数组。我从我的AppServiceProvider和json_decoded中得到了数组,就像:
View::composer('*', function($view)
{
$users = Users::all();
$view->with(compact(users );
}然后,我从javascript文件访问我的$usersArray,如下所示:
var dataSet = JSON.parse({!!$users !!});然而,我得到了以下错误;
jQuery.Deferred exception: Unexpected token o in JSON at position 1 SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)发布于 2019-03-20 09:35:42
由于您是在服务器端对其进行编码,所以需要在客户端对其进行解码,如下所示:
$chequesArray = Users::all()->toJson();
var dataSet = JSON.parse({!!json_encode($chequesArray)!!});也可以使用"base64_encode“来保存json格式,如:
$chequesArray = base64_encode(Users::all()->toJson());
var dataSet = JSON.parse(atob('{{$chequesArray}}');主要的区别来自于使用{{ }} vs {!! !!},第一种是转义特殊字符,因此它会将引号""转换为",然后JS将无法解析字符串(这就是为什么我们可以使用`base64_encode来保存格式),第二种方法将保存格式并允许引号使JS部分能够简单地解析它。
发布于 2019-03-20 09:29:29
var dataSet = @php $chequesArray @endphp;https://stackoverflow.com/questions/55257436
复制相似问题