【问题标题】:How to EXTEND a blade template only if it exists?仅当刀片模板存在时如何扩展它?
【发布时间】:2018-03-25 18:12:40
【问题描述】:

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

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

如果唯一的方法是使用 Blade 指令,您能否提供一个示例?谢谢!

【问题讨论】:

  • 您可以使用 php.ini 检查文件是否存在。 file_exists ($filename )。我不知道是否存在 Laravel 的检查方式
  • 我自己也做过类似的事情,但不是使用@extends,我必须使用@include('page'),然后在它所在的页面文件中使用@extends。

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


【解决方案1】:

尝试这样做:

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

【讨论】:

    【解决方案2】:
    @if( file_exists('path to file one'))
        @extends('one')
    @else
        @extends('two')
    @endif
    

    【讨论】:

      【解决方案3】:

      你可以使用view:exists

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

      【讨论】:

        【解决方案4】:

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

        @php
        
         $view = '';
        
         if (some_condition == true) {
             $view = 'one';
         } else {
              $view = 'two';
         }
        
        @endphp
        
        ...
        
        @extends($view)
        

        更多信息

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

        【讨论】:

          【解决方案5】:

          你可以使用View::exists

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

          file_exists() 并使用resource_path() this 获取路径,

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

          你可以试试这个,在我的情况下这是有效的。请参阅 Laravel 中的文档 - https://laravel.com/docs/5.5/views

          【讨论】:

            猜你喜欢
            • 2015-11-13
            • 1970-01-01
            • 1970-01-01
            • 2016-04-14
            • 2014-06-13
            • 1970-01-01
            • 2014-09-19
            • 2016-11-10
            • 2015-07-10
            相关资源
            最近更新 更多