Неопределенная переменная 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-home.blade.php)

Он отлично работал в версии laravel 5.4, но когда я обновился до laravel 5.8, он не работал.


person Kamlesh Gupta    schedule 09.03.2019    source источник


Ответы (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]);
person Henry    schedule 09.03.2019

Вот 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.

Дополнительную информацию можно найти в документации здесь

person joy    schedule 09.03.2019