我正在尝试包含另一个视图(如果存在)。我有一个主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
答案 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