【问题标题】:Is it possible to get the view / layout name in a Laravel (4) blade template是否可以在 Laravel (4) 刀片模板中获取视图/布局名称
【发布时间】:2015-01-20 15:22:39
【问题描述】:

我有一个布局,我想根据显示的视图向正文添加类,即:

<body class="layout-default page-index">

我可以很容易地在 Twig 中做到这一点(OctoberCMS 使用 Twig),但我看不到使用 Laravel 的 Blade 模板的方法(无论如何我更喜欢)。

我宁愿不必将变量传递给每个带有视图名称的View::make,因为这似乎是多余的。

【问题讨论】:

标签: php templates laravel blade


【解决方案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());?>

这些应该可以为您提供所需的一切。

【讨论】:

  • 我目前正在使用 stackoverflow.com/questions/22403655/… 中的视图编辑器,但这也是一个不错的方法。我希望这有更好的记录。
  • 这实际上对我在刀片中不起作用。我刚收到undefined method Illuminate\View\Factory::getName()
  • 嗯,去看看
猜你喜欢
  • 2016-03-15
  • 2014-09-19
  • 2017-08-07
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 2019-06-04
  • 2014-12-14
相关资源
最近更新 更多