是否可以在 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

如何在刀片模板的 foreach 循环中访问 laravel 集合?

在 Laravel 刀片模板中调用 ReactJS 组件

Laravel 4 上的刀片模板引擎语法问题

Laravel 4刀片模板导致FatalErrorException?