Laravel 4基础/主视图

时间:2013-08-02 22:23:41

标签: laravel laravel-4

我最近遇到了一些问题。有一个模型可以从中提取一些数据和内容。我希望在我输入的每个页面上都有一个菜单链接,因此我将其放入基础/主视图中。但问题是,我需要在每个控制器的每个公共函数上输入->with blabla thing。我怎么能不这样做?我的意思是它周围有吗?我不希望在每个控制器方法/功能上使用thingy。这是我的代码:

                    @if ( Auth::guest() )

                <li style="float: right;padding-right: 0">
                  <ul class="nav">
                    <li>
                      <a href="{{ URL::to('register') }}">
                        <i class="icon-black icon-plus">
                        </i>

                        <strong>
                          Register
                        </strong>
                      </a>
                    </li>
                    <li>
                      <a href="{{ URL::to('login') }}">
                        <i class="icon-black icon-lock">
                        </i>

                        <strong>
                          Log in
                        </strong>
                      </a>
                    </li>
                  </li>
                </li>
              </ul>

              @else

              <li class="divider-vertical">
              </li>
              <li style="float: right;padding-right: 0">
                <div class="btn-group">
                  <div class="btn btn-primary">
                    <i class="icon-user">
                    </i>
                    {{ (Auth::user()->name) }}
                  </div>

                  <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
                    <span class="icon-caret-down">
                    </span>
                  </a>

                  <ul class="dropdown-menu">
                    <li>

                      <a href="{{ URL::to('account/managment') }}">
                        <i class="icon-user">
                        </i>
                        Account Managment  
                      </a>

                    </li>
                    <li>

                      <a href="{{ URL::to('account/managment/change_credentials') }}">
                        <i class="icon-lock">
                        </i>
                        Change Password
                      </a>

                    </li>
                    <li class="divider">
                    </li>
                    <li>

                      <a href="{{ URL::to('account/logout') }}">
                        <i class="icon-off">
                        </i>
                        Log out
                      </a>

                    </li>

                  </ul>
                </div>

                @endif

2 个答案:

答案 0 :(得分:1)

您可以定义View Composer:

View::composer(array('your.first.view','your.second.view'), function($view)
{
    $view->with('count', User::count());
});

每当您调用视图时,用户计数将自动绑定到该视图。

编辑:

关于在哪里使用它,取决于你,这取决于你的应用程序,但如果你没有更好的地方可以使用pp / start / global.php。它必须在你的观点之前执行。

答案 1 :(得分:1)

@Antonio的答案是一个很好的方法。您还可以使用View :: share();用更短的代码来实现这一目标。

View::share(array(
    'foo' => 'bar'    
));