如果刀片模板存在,如何扩展?

时间:2017-10-13 14:58:37

标签: php laravel laravel-5.2 blade laravel-blade

基本上我想@extend一个刀片模板只有它存在,如果不是@extend一个不同的模板。关于使用@if @endif块有一些堆栈溢出答案,但只有在@including文件而不是@extending时才有效。理想情况下是这样的,但它不起作用:

@if(some_condition == true)
    @extends('one')
@else
    @extends('two')
@endif

如果唯一的方法是使用Blade指令,请提供一个例子吗?谢谢!

5 个答案:

答案 0 :(得分:1)

尝试这样做:

@extends( $somecondition == true ? 'one' : 'two')

答案 1 :(得分:0)

@if( file_exists('path to file one'))
    @extends('one')
@else
    @extends('two')
@endif

答案 2 :(得分:0)

您可以使用view:exists

@if(View::exists('path.to.view.one'))
    @extends('one')
@else
    @extends('two')
@endif

答案 3 :(得分:0)

您可以使用条件来定义要加载的视图名称,然后只需对其进行扩展,例如:

@php

 $view = '';

 if (some_condition == true) {
     $view = 'one';
 } else {
      $view = 'two';
 }

@endphp

...

@extends($view)

更多信息

https://laravel.com/docs/5.5/blade#php

答案 4 :(得分:0)

您可以使用View::exists

@if (View::exists('one'))
    @extends('one')
@else
    @extends('two')
@endif

file_exists()并且要使路径使用resource_path()

@if (file_exists(resource_path('views/one.blade.php')))
    @extends('one')
@else
    @extends('two')
@endif

你可以试试这个,就我的情况而言......看看Laravel中的文档 - https://laravel.com/docs/5.5/views