无法从控制器访问视图中的变量 laravel

can't access variable in view from controller laravel

我无法在函数 show() 中访问 $prospectus,但在 laravel 版本 5.6.27

中的函数 store() 中运行良好
public function store(Request $request) {

    $course = Course::create([
        'name' => $request['name'],
        'title' => $request['title'],
        'division_id' => $request['division_id'],
    ]);

    $prospectus = Prospectus::create([
        'years' => $request['years'],
        'name' => $course->name,
        'user_id' => null,
        'course_id' => $course->id,
    ]); 

    return view('courses.show', compact('course', 'prospectus'));
}

public function show(Course $course) {
    $prospectus = Prospectus::where('course_id', $course->id)->get();

    //return $prospectus;
    return view('courses.show', compact('course', 'prospectus'));
}

数据在我使用 return $prospectus; 时传递,但在 return view('courses.show', compact('course', 'prospectus'));

中不传递

这是我的路线

Route::resource('courses', 'CourseController');

Route::post('courses', 'CourseController@store')->name('courses.store');

Route::get('courses/{course}', 'CourseController@show')->name('courses.show');

确认 $prospectus 查询没有 return NULL

试试这个:

$prospectus = Prospectus::where('course_id', $course->id)->first();

我想你想要一个 Prospectus 目标,get() will give you a collection 个对象。

使用 first() 函数仅从数据库中获取第一个匹配项作为单个对象。

$prospectus = Prospectus::where('course_id', $course->id)->first();