如何从Laravel中的JavaScript刀片上的控制器获取数组

时间:2019-06-07 10:21:08

标签: javascript laravel

我正在研究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"]

我想从此数组中获取列表。谢谢您的任何建议或指导。

3 个答案:

答案 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>