如何从Blade.php到Laravel中的Vue组件传递路由数组

时间:2020-10-06 18:38:25

标签: php laravel vue.js

我有一个控制器,该控制器将路由传递到blade.php文件。在该blade.php文件中,我正在使用Vue组件并将:routes作为道具传递给Vue组件。问题是,控制器正在返回多个路由的集合,但是当我将:routes传递给我的Vue组件时,除非我一次仅传递一条路由,否则它是错误的。在我的组件中,我有一些路由要在props中作为数组接受。如何传递从刀片到Vue的一系列路由?

blade.php文件

  <user-exam
        :routes="{{ json_encode( route('user.exam-start', ['exam' => $exam[0]]))}}"
  ></user-exam>

您可以在上面的代码中看到,我正在使用[0]索引来传递一条路线,我不想这样做。

userExam.vue文件

<script>

export default {
  props: {
    routes: Array,
  },
}
</script>

谢谢。

2 个答案:

答案 0 :(得分:0)

关于Laravel,我几乎没有用,但是听起来您想将$exam数组映射到路由数组(由该route函数返回)。

尝试一下

<user-exam
  :routes="{{ json_encode( array_map(function($ex) {
    return route('user.exam-start', ['exam' => $ex]);
  }, $exam) ) }}"
></user-exam>

答案 1 :(得分:0)

我找到了解决问题的方法,最终像这样在刀片文件中循环

@foreach($exam as $ex)
<user-exam
        :routes="{{ json_encode( route('user.exam-start', ['exam' => $ex]))}}"
  ></user-exam>
@endforeach

这最终会创建vue组件的多个实例,但是它可以按我的意愿工作。

在vue开发工具中,您具有类似以下内容:

<Root>
    <userExam>
    <userExam>
</Root>