如果存在于blade,laravel 5中,则包括嵌套视图

时间:2015-03-31 21:10:17

标签: php laravel laravel-5 blade

我正在尝试包含另一个视图(如果存在)。我有一个主page.blade.php,它应该呈现所选页面的内容。在应用程序的后端,我得到一个包含所有内容的平面数组(id和name)。所以现在如果模板存在,我想渲染它,但首先我需要检查模板是否确实存在。

我现在收到了以下代码:

@foreach($flattenPage as $page)
    @if(file_exists('templates.'.strtolower($page['name'])))
        @include('templates.'.strtolower($page["name"]))
    @endif
@endforeach

问题在于它无法通过if语句。 我也尝试过:

@if(file_exists('../templates/'.strtolower($page['name']).'.blade.php'))

当前模板为views/page/show.blade.php,我需要呈现views/templates/myContent.blade.php

2 个答案:

答案 0 :(得分:11)

如果您需要确定是否存在视图,则可以使用exists方法(as described in the docs

@if (view()->exists('templates.'.strtolower($page["name"])))
    @include('templates.'.strtolower($page["name"]))
@endif

答案 1 :(得分:0)

从Laravel 5.2您也可以这样做:

@includeIf('view.name', ['some' => 'data'])

您的代码如下所示:

@foreach($flattenPage as $page)
    @includeIf('templates.'.strtolower($page["name"]))
@endforeach
相关问题