简体   繁体   中英

Is it possible to get the view / layout name in a Laravel (4) blade template

I have a layout in which I want to add classes to the body depending on which view is being displayed, ie:

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

I can do this in Twig quite easily (OctoberCMS uses Twig) but I can't see a way to do it with Laravel's Blade templates (which I prefer anyway).

I'd rather not have to pass a variable to every View::make with the view name as this seems redundant.

Good question, very smart way to work with css. You would use this typically by adding classes to the body tag, or the main container div.

within your routes or filters file:

View::composer('*', function($view){

    View::share('view_name', $view->getName());

});

Within your view:

<?php echo str_replace('.','-',$view_name);?>

<?php echo str_replace('.','-',Route::currentRouteName());?>

These should get you everything you need.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM