无法从控制器访问视图中的变量 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();
我无法在函数 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();