Передача данных из контроллера в главное представление - PullRequest
0 голосов
/ 23 мая 2018

Я использую Laravel и у меня есть большое количество index.blade.php страниц, которые расширяют страницу master.blade.php, теперь master нужны некоторые данные, такие как список пунктов меню.

КогдаЯ хочу увидеть список Aircraft У меня есть этот маршрут:

Route::get('aircrafts', 'AircraftsController@index');

, и это метод AircraftsController@index:

public function index(){
    $aircrafts = Aircraft::all();
    $menus = Menu::all();
    return view('aircrafts.index', compact('menus', 'aircrafts'));
}

Как вы можете видеть, я долженпередать $menus каждому представлению в каждом контроллере, и если в какой-то момент master потребуются некоторые другие данные, я вынужден редактировать каждый контроллер ...

Есть ли какой-нибудь более умный способ передатьданные в мастер?

Я бы хотел избежать извлечения нужных данных непосредственно внутри представления ...

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Если данные требуются во всех представлениях, вы можете попробовать view()->share('menus', Menu::all()) в поставщике услуг, в противном случае View::composer() является правильным вариантом для этого.

0 голосов
/ 23 мая 2018

в вашем AppServiceProvider добавьте use View;

public function boot()
{
  View::composer('*', function($view){
    $view->with('aircrafts', Aircraft::all());
    $view->with('menus', Menu::all());
});
}

после того же использования.Нравится @foreach($menus as $foo)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...