是否可以在 Laravel (4) 刀片模板中获取视图/布局名称
Posted
技术标签:
【中文标题】是否可以在 Laravel (4) 刀片模板中获取视图/布局名称【英文标题】:Is it possible to get the view / layout name in a Laravel (4) blade template 【发布时间】:2015-01-20 15:22:39 【问题描述】:我有一个布局,我想根据显示的视图向正文添加类,即:
<body class="layout-default page-index">
我可以很容易地在 Twig 中做到这一点(OctoberCMS 使用 Twig),但我看不到使用 Laravel 的 Blade 模板的方法(无论如何我更喜欢)。
我宁愿不必将变量传递给每个带有视图名称的View::make
,因为这似乎是多余的。
【问题讨论】:
看看this answer 【参考方案1】:好问题,使用 css 的非常聪明的方法。 您通常可以通过向 body 标记或主容器 div 添加类来使用它。
在您的路由或过滤器文件中:
View::composer('*', function($view)
View::share('view_name', $view->getName());
);
在你看来:
<?php echo str_replace('.','-',$view_name);?>
<?php echo str_replace('.','-',Route::currentRouteName());?>
这些应该可以为您提供所需的一切。
【讨论】:
我目前正在使用 ***.com/questions/22403655/… 中的视图编辑器,但这也是一个不错的方法。我希望这有更好的记录。 这实际上对我在刀片中不起作用。我刚收到undefined method Illuminate\View\Factory::getName()
。
嗯,去看看以上是关于是否可以在 Laravel (4) 刀片模板中获取视图/布局名称的主要内容,如果未能解决你的问题,请参考以下文章
我可以在刀片模板 laravel 5 中使用请求路径 URI 吗?
@include 之后刀片未在刀片中显示内容 - Laravel 4.2