将数据从Laravel传递到vue

时间:2019-11-28 15:25:23

标签: laravel vue.js

我正在尝试将一个数组从laravel控制器传递到我的vue组件,已经成功传递了数据,但是我正在尝试发送另一个,而这个新的不起作用。

这是控制器功能,如果我dd($data);显示正确的数据。

$data['user'] = Auth::user()->load('userType');
$data['courses'] = Course::all();
$data['myClasses'] = StudentSchedule::where('instructor_id',Auth::user()->id)
    ->with('course', 'package.packageCourses', 'user', 'location')->get();

$data['locations'] = Location::all();
$data['notification'] = Notification::where('instructor_id', Auth::user()->id)
    ->with('student','instructor','location','course')->get();
if (Auth::user()->rankings()->count() > 0) {
    $data['user']->ranking = Auth::user()->rankings()->avg('ranking');
} else {
    $data['user']->ranking = 5;
}

return view('home', $data);

这是我的刀片

@extends('layouts.app')

@section('styles')
    @parent
    <link href="{{ asset('css/views/users/show.css') }}" rel="stylesheet">
@endsection

@section('content')
    <user-show></user-show>
@endsection
@section('scripts')
    <script>
        const user = {!! json_encode($user) !!};
        const courses = {!! json_encode($courses) !!};
        const myClasses = {!! json_encode($myClasses) !!};
        const locations = {!! json_encode($locations) !!};
    </script>
    <script src="{{ asset('js/users/show.js') }}"></script>
@endsection

这就是我试图获取我设置的数据的地方,这就是data()

courses: [],
myClasses: [],
locations: [],
notification: [],

在已安装的

this.courses = courses;
this.myClasses = myClasses;
this.locations = locations;
this.notification = notification;

我得到的错误是这样,位于已挂载的this.myClasses = myClasses行上

  

挂接的钩子中出现错误:“ ReferenceError:未定义myClasses”

     

ReferenceError:未定义myClasses

我不明白为什么myClasses不起作用,而其他所有人却起作用。

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

之所以不起作用,是因为我要在控制器中返回主视图,但是在主视图中,根据user_type_id再次将用户重定向,而我只设置了

const myClasses = {!! json_encode($myClasses) !!};

在重定向视图中,而不在主视图中。

因此,从技术上讲,如果没有重定向视图,则代码是正确的,因此,如果您具有重定向视图,请记住在所有视图中设置这些视图,而不仅仅是在最后一个视图中进行设置。