Laravel 5 получить имя

Я пытаюсь получить имя вида в L5. Как и в WP, я хотел бы добавить конкретное имя страницы (имя представления) для стилизации, например:

<!-- View name: login.blade.php !--> <div id="page" class="page-login"> <h1>Inloggen</h1> </div> <!-- View name: register.blade.php !--> <div id="page" class="page-register"> <h1>Registreren</h1> </div> 

В L4 это можно сделать с помощью компоновщика для совместного использования var во всех представлениях ( как мне получить текущее имя представления внутри мастер-плана в Laravel 4? ). Но мне нужно только одно имя имени для моего макета.

Делая это:

 <div id="page" class="page-{{ view()->getName() }}"> 

Дает мне следующую ошибку: Call to undefined method Illuminate\View\Factory::getName() .

Заранее спасибо!

Related of "Laravel 5 получить имя"

Обновите AppServiceProvider, добавив композитор представления к методу загрузки и используя '*', чтобы поделиться им со всеми представлениями:

 <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { view()->composer('*', function($view){ $view_name = str_replace('.', '-', $view->getName()); view()->share('view_name', $view_name); }); } /** * Register any application services. * * @return void */ public function register() { // } } 

{{$view_name}} будет доступно для ваших шаблонов {{$view_name}} .

Единственное решение, которое я мог найти, это:

 @foreach(View::getFinder()->views as $view=>$viewpath ) {{$view}} @endforeach 

Это не совсем идеальное решение, но вам также нужны изменения в поставщике / laravel / framework / src / Illuminate / View / FileViewFinder.php

 /** * The array of views that have been located. * * @var array */ protected $views = array(); 

к этому:

 /** * The array of views that have been located. * * @var array */ public $views = array(); 

Таким образом, вы сможете получить доступ к имени представления.