我正在尝试将一个数组从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
不起作用,而其他所有人却起作用。
我在做什么错了?
答案 0 :(得分:1)
之所以不起作用,是因为我要在控制器中返回主视图,但是在主视图中,根据user_type_id再次将用户重定向,而我只设置了
const myClasses = {!! json_encode($myClasses) !!};
在重定向视图中,而不在主视图中。
因此,从技术上讲,如果没有重定向视图,则代码是正确的,因此,如果您具有重定向视图,请记住在所有视图中设置这些视图,而不仅仅是在最后一个视图中进行设置。