我无法在函数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');
答案 0 :(得分:1)
我想您想要一个Prospectus
对象,get()
将为您提供collection个对象。
使用first()
函数仅将数据库中的第一个匹配项作为单个对象。
$prospectus = Prospectus::where('course_id', $course->id)->first();
答案 1 :(得分:0)
确认$ prospectus查询不返回NULL,请尝试以下操作:
$ prospectus = Prospectus :: where('course_id',$ course-> id)-> first();