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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Laravel 5中检索视图名称?相关的知识,希望对你有一定的参考价值。

我尝试过各种各样的方式,包括热门帖子: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”,我不介意它是否更长,我只是想要它确定。

答案

你可以使用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 }}

以上是关于如何在Laravel 5中检索视图名称?的主要内容,如果未能解决你的问题,请参考以下文章

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

如何在 laravel 5.7 中获取当前视图名称(页面名称)

如何在 Laravel 5 下拉列表中检索选定选项的值?

Laravel:如何在控制器的几种方法中重用代码片段

如何在主活动中正确检索片段中的视图

如何在 LARAVEL 5.2 中将数据存储到数据库中