1

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

                    @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
4

2 回答 2

1

@Antonio 的回答是做到这一点的好方法。你也可以使用 View::share(); 用更短的代码来实现这一点。

View::share(array(
    'foo' => 'bar'    
));
于 2013-08-03T15:27:06.947 回答
1

您可以定义一个 View Composer :

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

每次调用视图时,都会自动绑定一个用户数。

编辑:

关于在哪里使用它取决于您,这取决于您的应用程序,但如果您没有更好的放置位置,您可以使用 pp/start/global.php。它只需要在您的这些视图之前执行。

于 2013-08-02T22:50:32.147 回答