繁体   English   中英

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

[英]How to get array from controller on javascript blade in 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"]

我想从此数组获取列表。 对此,任何建议或指导将不胜感激。

您可以在frotend中进行ajax调用,而后端可以这样做

$dicomfilearray = json_encode($dicom->pluck('filename'))->toArray()); 
return view('xray.view')->withDicomfilearray($dicomfilearray);

当您使用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 }}';

您可以执行类似的操作,并且如果要将变量传递给外部javascript文件,这甚至可以工作。 您要做的就是调用带有传递参数的init函数。

 <script>      
    $(function () {
         init({{ json_encode($dicomfilearray) }} });
         function init(dicomfilearray){
        //use your variable here  
      }
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM