我最近遇到了一些问题。有一个模型可以从中提取一些数据和内容。我希望在我输入的每个页面上都有一个菜单链接,因此我将其放入基础/主视图中。但问题是,我需要在每个控制器的每个公共函数上输入->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
答案 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'
));