Laravel 5.8 使用 "With" 子句时未定义变量

Laravel 5.8 Undefined variable while using "With" Clause

这是我的控制器代码:

$exam_categories = ExamCategory::all();
return view('test.test-home')->withExamCategories($exam_categories);

这是我的 blade 模板代码:

<select class="custom-select form-control-lg exam-category" id="exam-category" style="font-weight: bold">
     <option selected>Select</option>
     @foreach($exam_categories as $examCategory)
          <option value="{{$examCategory->id}}">{{$examCategory->Category}}</option>
     @endforeach
</select>

如果我运行此代码然后它显示以下错误:

Undefined variable: exam_categories (View: /var/www/myproj/resources/views/test/test-home.blade.php)

它在 laravel 5.4 版本中运行良好,但是当我更新到 laravel 5.8 时,它无法运行。

尝试改用 compact。

 $exam_categories = ExamCategory::all();
    return view('test.test-home', compact('exam_categories'));

 $exam_categories = ExamCategory::all();
    return view('test.test-home')->with(['exam_categories' => $exam_categories]);

这是将数据传递给视图的 2 种方法:

  1. $exam_categories = ExamCategory::all();
    return view('test.test-home')->with('exam_categories',$exam_categories);
    
  2. $exam_categories = ExamCategory::all();
    return view('test.test-home',['exam_categories',$exam_categories]);
    

现在您可以使用 $exam_categories.

轻松访问视图中的变量

更多信息,您可以阅读文档here