无法从控制器 laravel 访问视图中的变量
Posted
技术标签:
【中文标题】无法从控制器 laravel 访问视图中的变量【英文标题】:can't access variable in view from controller laravel 【发布时间】:2018-12-27 16:44:37 【问题描述】:我无法在函数 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 为空,请尝试在 show 方法中dd($prospectus);
;或return view('courses.show', ['course' => $course, '' => 'prospectus' => $prospectus]);
您的视图中是否出现错误?究竟是什么问题?
$prospectus 不为空,数据返回return $prospectus
我收到一个错误 Property [years] does not exist on this collection instance
和 $prospectus->years
但是当我调用 $prospectus
时数据被传递了
【参考方案1】:
确认$prospectus
查询不返回NULL
试试这个:
$prospectus = Prospectus::where('course_id', $course->id)->first();
【讨论】:
工作得很好!谢谢!【参考方案2】:我假设你想要一个 Prospectus
对象,get()
会给你一个 collection 对象。
使用first()
函数仅从数据库中获取第一个匹配项作为单个对象。
$prospectus = Prospectus::where('course_id', $course->id)->first();
【讨论】:
以上是关于无法从控制器 laravel 访问视图中的变量的主要内容,如果未能解决你的问题,请参考以下文章
如何将视图中的数组传递给 ajax 并在 Laravel 5 的控制器中访问?