【发布时间】:2014-03-14 11:24:26
【问题描述】:
在 Laravel 4 中,我有一个主刀片布局,我想向 html 元素添加一个类,例如“tpl-home”,但我需要知道哪个是当前使用 View::make 调用的视图名称。
<!doctype html>
<html lang="es" class="tpl-{{Str::slug($currentViewName)}}">
Laravel 是否提供任何函数来检索这个?
谢谢
【问题讨论】:
在 Laravel 4 中,我有一个主刀片布局,我想向 html 元素添加一个类,例如“tpl-home”,但我需要知道哪个是当前使用 View::make 调用的视图名称。
<!doctype html>
<html lang="es" class="tpl-{{Str::slug($currentViewName)}}">
Laravel 是否提供任何函数来检索这个?
谢谢
【问题讨论】:
在您的过滤器文件位置:
View::composer('*', function($view){
View::share('view_name', $view->getName());
});
然后在您的主刀片布局中,您可以将其作为 $view_name 访问。
【讨论】:
@include 的部分,那些覆盖view_name 与任何最后加载的视图。
View Composer 是在视图中保留/共享变量的好方法,但在路由文件中设置的视图名称在每个视图中更像是一个固定值而不是变量,这就是为什么在这种情况下,
我宁愿像这样在 Blade 中使用 Request::path() == 'viewName':
<ul class="nav navbar-nav">
<li{{ Request::path() == 'admin' ? ' class="active"' : '' }}>
<a href="{{ URL::to('/admin') }}">Admin</a>
</li>
<li{{ Request::path() == 'bookings' ? ' class="active"' : '' }}>
<a href="{{ URL::to('/bookings') }}">Bookings</a>
</li>
...
【讨论】: