如何获得Laravel中包含的视图的次数?

时间:2017-10-03 11:16:22

标签: laravel blade

有没有办法告诉视图在视图中包含多少次视图?

e.g:

@if(thisViewWasIncluded())
    <div ... />
@else
    <div class="..." ... />
@endif

2 个答案:

答案 0 :(得分:0)

不,通过像这样的简单函数调用,这是不可能的。但是,如果您有条件地包含视图(例如通过includeWhen()函数),则只需检查条件的值。

示例:

@includeWhen($boolean, 'view.name', ['some' => 'data'])
@if($boolean)
//View included
@else
//View not included
@endif

答案 1 :(得分:0)

所以这就是我实际设法做到这一点的方式:

我创建了一个View Composer,它将View名称附加到ViewBag类,如下所示:

view()->composer('*', function ($view) {
    ViewBag::attach($view->getName());
});

然后我创建了一个viewBag()辅助函数,它返回包含所有附加信息的ViewBag实例。现在它可以像这样使用:

<h1>
    Auth.Login was included: 
    {{ viewBag()->count('auth.login') }} times
</h1>

现在我也可以这样做:

@if(viewBag()->contains('auth.login'))
    hello
@endif