laravel boot()服务:无法访问变量

时间:2015-05-18 09:06:34

标签: php laravel laravel-5

在我的应用程序中,通过Laravel ServiceProvider compose()方法编译导航:

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之外访问此变量而不进行任何其他调用?

2 个答案:

答案 0 :(得分:0)

您在$navData中使用page.blade.php,而不是partials.nav。所以要使它起作用

view()->composer('partials.nav', function($view) {

view()->composer('page.blade.php', function($view) {

view()->composer('*', function($view) {

如果您想让$navData随处可用。

答案 1 :(得分:0)

使用此

view()->composer('partials.nav', function($view) {
$data['navData'] = // retrieve categories from DB... 
$view->with($data);
});