如何获取视图被包含在 Laravel 中的次数?
How to get how many times a view was included in Laravel?
有什么方法可以判断一个视图在 blade 中被包含了多少次?
例如:
@if(thisViewWasIncluded())
<div ... />
@else
<div class="..." ... />
@endif
不,通过这样一个简单的函数调用是不可能的。但是如果你有条件地包含你的视图(例如通过 includeWhen()
函数),你可以只检查条件的值。
示例:
@includeWhen($boolean, 'view.name', ['some' => 'data'])
@if($boolean)
//View included
@else
//View not included
@endif
这就是我实际设法做到这一点的方式:
我创建了一个 View Composer,它将视图名称附加到 ViewBag class,如下所示:
view()->composer('*', function ($view) {
ViewBag::attach($view->getName());
});
然后我创建了一个 viewBag()
辅助函数,returns 包含所有附加信息的 ViewBag 实例。现在可以这样使用了:
<h1>
Auth.Login was included:
{{ viewBag()->count('auth.login') }} times
</h1>
现在我还可以做以下事情:
@if(viewBag()->contains('auth.login'))
hello
@endif
有什么方法可以判断一个视图在 blade 中被包含了多少次?
例如:
@if(thisViewWasIncluded())
<div ... />
@else
<div class="..." ... />
@endif
不,通过这样一个简单的函数调用是不可能的。但是如果你有条件地包含你的视图(例如通过 includeWhen()
函数),你可以只检查条件的值。
示例:
@includeWhen($boolean, 'view.name', ['some' => 'data'])
@if($boolean)
//View included
@else
//View not included
@endif
这就是我实际设法做到这一点的方式:
我创建了一个 View Composer,它将视图名称附加到 ViewBag class,如下所示:
view()->composer('*', function ($view) {
ViewBag::attach($view->getName());
});
然后我创建了一个 viewBag()
辅助函数,returns 包含所有附加信息的 ViewBag 实例。现在可以这样使用了:
<h1>
Auth.Login was included:
{{ viewBag()->count('auth.login') }} times
</h1>
现在我还可以做以下事情:
@if(viewBag()->contains('auth.login'))
hello
@endif