如何在Laravel 5中检索视图名称?

问题描述 投票:1回答:1

我尝试过各种各样的方式,包括热门帖子:Add View Name to CSS Class on Body

但它会提取主模板,而不是子模板名称。我使用@yield和@extends等。所以目前这是我的文件系统的一部分在我的视图中的样子:

-Views
--Layouts
---=master.blade.php
--Shipments
---=index.blade.php

所以我的shipment.index文件将@extends('layouts.master'),所以我没有那么多的冗余。但是,参考上面的帖子,我得到以下结果:

<div id="page" class="layouts.master">

这不是我想要的,我至少更喜欢“shipment.index”,我不介意它是否更长,我只是想要它确定。

php css laravel laravel-5 view
1个回答
2
投票

你可以使用Laravel View Composers

视图组合器是在呈现视图时调用的回调或类方法。如果每次呈现视图时都希望将数据绑定到视图,则视图编写器可以帮助您将该逻辑组织到一个位置。

在文件app/Providers/AppServiceProvider.php中,编辑public function boot()方法

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot(Application $app)
{
    view()->composer('*', function($view) {
        view()->share('view_name', $view->getName());
    });
}

在此之后,在任何刀片模板中,您现在都可以访问变量

{{ $view_name }}

© www.soinside.com 2019 - 2024. All rights reserved.