Laravel 5.8使用“ With”子句时未定义的变量

时间:2019-03-09 05:03:49

标签: laravel laravel-5.8

这是我的控制器代码:

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

这是我的刀片模板代码:

<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>

如果我运行此代码,则它将显示以下错误

  

未定义变量: exam_categories (查看:/var/www/myproj/resources/views/test/test-test.home.blade.php)

在laravel 5.4版本中它可以正常工作,但是当我更新到laravel 5.8时,它无法工作。

2 个答案:

答案 0 :(得分:2)

尝试使用紧凑型。

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

OR

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

答案 1 :(得分:1)

以下是将数据传递给视图的两种方法:

  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