我正在研究laravel项目,并试图将数组从控制器传递到javascript。以下代码来自我的控制器。
$dicomfilearray = $dicom->pluck('filename')->toArray();
return view('xray.view')->withDicomfilearray($dicomfilearray);
下面是我要传递给刀片文件中的Javascript。
var dicomarray = '{{ json_encode($dicomfilearray) }}';
console.log(dicomarray);
以下是Javascript的日志结果。
["storage/uploads/storeid1/27/10/dicom/c4p4Oco3rU.dcm","storage/uploads/storeid1/27/10/dicom/RNil0NPPzQ.dcm"]
我想从此数组中获取列表。谢谢您的任何建议或指导。
答案 0 :(得分:1)
您可以在frotend中进行ajax调用,而后端可以这样做
$dicomfilearray = json_encode($dicom->pluck('filename'))->toArray());
return view('xray.view')->withDicomfilearray($dicomfilearray);
答案 1 :(得分:1)
当您使用javascript工作并且需要javascript数据时,为什么需要view
部分。实际上,我只是读过您的评论。
如果在Ajax中
所以我建议使用json_encode
发送数组,并使用javascript将数据填充到视图中。
只需在控制器的正下方
response()->json(['status'=>200,'data'=>$dicomfilearray])
更新 因此,您不必这样简单地发送ajax请求。像下面这样。
控制器:-
$data = json_encode($dicomfilearray);
return view('your-view',compact('data'));
javascript
var dicomarray = '{{ $data }}';
答案 2 :(得分:0)
您可以执行类似的操作,并且如果要将变量传递给外部javascript文件,此方法也可以使用。您要做的就是调用带有传递参数的init函数。
<script>
$(function () {
init({{ json_encode($dicomfilearray) }} });
function init(dicomfilearray){
//use your variable here
}
</script>