我想将一个数组从 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>)
最佳答案
由于您在服务器端对其进行编码,因此您需要在客户端对其进行解码,例如:
$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}}');
主要区别在于 {{ }}
与 {!! !!}
,第一个转义特殊字符,所以它会将引号 ""
转换为 "
然后 JS 将无法解析字符串(这就是为什么我们可以使用 `base64_encode`` 来保存格式),第二个将保存格式并允许引用,这使 JS 部分能够简单地解析它。
关于javascript - 将 Laravel 集合/数组转换为 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55257436/