将Laravel集合/数组转换为Javascript数组

时间:2019-03-20 09:27:43

标签: javascript jquery arrays json laravel

我想将Laravel中的数组分配给JavaScript数组。我已经从我的 function toggle(source) { checkboxes = document.getElementsByName('chkInvID'); for(var i=0, n=checkboxes.length;i<n;i++) { checkboxes[i].checked = source.checked; } } 中获得了数组,并用json_decode像这样:

AppServiceProvider

然后我从javascript文件访问$ usersArray,例如:

View::composer('*', function($view)
{
   $users = Users::all();
   $view->with(compact(users );
}

但是我遇到以下错误;

  var dataSet = JSON.parse({!!$users !!});

2 个答案:

答案 0 :(得分:5)

由于要在服务器端进行编码,因此需要在客户端进行解码,例如:

$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}}');

主要区别在于使用{{ }}{!! !!},第一个转义特殊字符,因此它将引号""转换为&quot;,然后是JS将无法解析字符串(这就是为什么我们可以使用`base64_encode``来保留格式的原因),第二个将保留格式并允许使用引号使JS部分能够简单地对其进行解析。

答案 1 :(得分:-1)

var dataSet = @php $chequesArray @endphp;