我如何在Laravel 4的主图层中获得当前视图名称?


How can I get the current view name inside a master layour in Laravel 4?

在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.

View composer是一种在视图中保存/共享变量的好方法,但在routes文件中设置的视图名在每个视图中更像是一个固定值,而不是一个变量,这就是为什么,在这种情况下,

我宁愿在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>
  ...