В моем приложении навигации скомпилирована с помощью Laravel ServiceProvider compose()
метода:Laravel загрузки() служба: не может получить доступ к переменным
view()->composer('partials.nav', function($view) {
$navData = // retrieve categories from DB...
$view->with($navData);
});
я получить переменную $navData
к моим nav.blade.php
и компилировать навигацию успешно. Однако некоторые из данных, передаваемых в навигацию я хочу использовать на странице, @includes
навигации, например page.blade.php
:
@include('partials.nav')
<div id="main">
{{ $navData['category'] }}
</div>
Но я бросаю ошибку: Undefined variable: $navData
. Есть ли способ получить доступ к этой переменной за пределами nav.blade.php
без каких-либо дополнительных вызовов?
Если я заменить ' 'partials.nav'' с'' page.blade.php'', то '$ navData' будет доступен только на' page.blade.php' , но мне нужно это на 'nav', которое включено во все страницы. Я попробовал '' * '', но он выдает ошибку. Я новичок в laravel, поэтому я мог бы получить что-то неправильно здесь – qwaz
«Я попробовал« * », но это вызывает ошибку». - вставить здесь сообщение об ошибке –
'FatalErrorException в строке NavigationComposer.php 13: Невозможно обновить приложение \ Http \ Composers \ list_categories() (ранее объявленное в C: \ project \ app \ Http \ Composers \ NavigationComposer.php: 13)'. Как только я изменяю '' * ''обратно на' 'partials.nav'', он работает нормально. – qwaz