Передача переменных из контроллера в представление приводит к ошибке

#laravel

#laravel

Вопрос:

Я передаю несколько переменных из контроллера в представление через Compact (), 3 из переменных доступны в представлении, а остальные выдают ошибку «Неопределенная переменная: «. Существует ли ограничение на передачу переменной в представление с помощью compact() или with()?

  ```
 CONTROLLER:

  class HomePageController extends Controller
{
  public function ShowAdminHomePage()
   {
  $homesection1 = HomeSection1::all();
  $homesection2 = HomeSection2::all();
  $homesection3 = HomeSection3::all();
  $h_s3title = HomeSection3Title::all();
  $count_s1 = HomeSection1::count();
  $count_s2 = HomeSection2::count();
  $count_s3 = HomeSection3::count();
  return view::('backend.page.home.index')->with($homesection1,$homesection2,$homesection3,$count_s1,$count_s2,$count_s2,$count_s3);
  return view('backend.page.home.index', compact('homesection1','homesection2','count_s1','count_s2','homesection3','h_s3title'));
}
 ```


 ```
 VIEW:

   @foreach ($homesection3 as $s3)
          <div class="col-sm-6 col-lg-3 mt-30">
              <div class="feature-box bg-white shadow-hover border-radius-3 f-style-5 h-100 icon-grad">
                  <div class="feature-box-icon"><i class="ti-panel"></i></div>
                  <h3 class="feature-box-title">{{$s3->name}}</h3>
                  <p class="feature-box-desc">{{ $s3->description }}</p>
              </div>
          </div>
        @endforeach
 ```
  

Я могу получить данные из $ homesectio1, $ homesectio2, $ count_s1 и $ count_s2, но $ homesection3 и $ h_s3title выдают ошибку: Неопределенная переменная

Ответ №1:

Нет, в php нет ограничений compact .

Я предлагаю вам сохранить последнюю инструкцию return, чтобы убедиться, что у вас нет опечаток при добавлении переменных в compact или при попытке использовать ее в представлении. Также убедитесь, что код в представлении, который предшествует части, использующей $homesection3, настроен правильно.

Комментарии:

1. Я работал над проектом около 10 часов. Я работал над контроллером. Спасибо

Ответ №2:

Вы send with compact Должны установить ключи и значения следующим образом:

     return view('backend.page.home.index', compact(['homesection1'=>$homesection1,
                                                    'homesection2'=>$homesection2,
                                                    'count_s1'=>$count_s1,
                                                    'count_s2'=>$count_s2,
                                                    'homesection3'=>$homesection3,
                                                    'h_s3title'=>$h_s3title]);