如何在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 重复代码片段