2015-07-28 3 views
0

Я хотел бы знать подходящий способ предоставления информации на макет/главную страницу.Как предоставить данные на главной странице? Laravel 5

Друг рекомендовал добавив в App\Providers\AppServiceProvider.php

view()->composer('app', function($view) { 
     $view->with('stages', Stage::all()); 
    }); 

Это работает, но только на главной странице.

Вот как эти данные используются в главной странице app.blade.php

<ul class="dropdown-menu" role="menu"> 
    @if(isset($stages)) 
    @foreach($stages as $stage) 
     <li><a href="department/{{ $stage->id }}">{{ $stage->name }}</a></li> 
    @endforeach 
    @endif 
</ul> 

Пожалуйста помогите, спасибо.

Решение

use Illuminate\Support\ServiceProvider; 
use View; 
use App\Stage; 

class AppServiceProvider extends ServiceProvider { 

public function boot() { 
    View::share('stages', Stage::all()); 
} 

..... 

ответ

1

Вы должны использовать View :: Общежитие(), если вы хотите, чтобы данные по всему виду. Внутри AppService Provider просто сделать:

View::share('stages', Stage::all()); 

Here you have the docs.

EDIT: использовать вид фасада, просто добавьте в начало файла:

use View; 

Вы можете также использовать

view()->share() 
+0

Не могли бы вы также рассказать мне, как получить доступ к фасаду View? –

+0

Обновлен мой ответ. – zeratulmdq

+0

Спасибо за помощь. Все еще ошибка. 'Метод [share] не существует в представлении' –

Смежные вопросы