无法从控制器 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 访问视图中的变量的主要内容,如果未能解决你的问题,请参考以下文章

从推送视图访问第一个导航控制器中的方法和变量

将数据从控制器传递到 Laravel 中的视图

如何将视图中的数组传递给 ajax 并在 Laravel 5 的控制器中访问?

如何在 Laravel 中将变量从视图传递到控制器而不使用 URL 或表单

如何从 Laravel 的控制器中传递变量到视图

从 Laravel 中的控制器返回刀片组件