【问题标题】:Check for file existence if Laravel's Blade template如果 Laravel 的 Blade 模板检查文件是否存在
【发布时间】:2022-01-11 14:36:02
【问题描述】:

我有一个简单的问题 - 我如何检查文件是否存在于 Laravel 的 Blade 模板中? 我试过了

@if(file_exists('/covers/1.jpg')) ok @endif

但它不起作用(covers 目录在/public 中)。我还需要为函数提供一个变量 ($game->id)。不幸的是,

@if(file_exists('/covers/'.$game->id.'.jpg')) ok @endif

没用。

【问题讨论】:

  • 如果您的安装位于子目录中,那么该绝对路径将不起作用,除非您的子目录设置为文档根目录。例如,如果您通过localhost/yoursite/public 访问您的站点,那么您需要使用/yoursite/public/covers/1.jpg,因为localhost 将是文档根目录。

标签: laravel laravel-4


【解决方案1】:

这对我有用,favicon.ico 在公共内部:

@if(file_exists('favicon.ico')) 
  File exists
@else
  Could not find file
@endif

所以我认为你只需要使用@if(file_exists('covers/1.jpg'))

【讨论】:

    【解决方案2】:

    在 Laravel 4 中你可以使用:

     @if (file_exists(public_path('covers/1.jpg')))
    

    使用public_path 获取文件的物理路径。

    【讨论】:

    • 谢谢,这对我有帮助。
    【解决方案3】:

    在 Laravel 5.8 中,我是这样使用它的:

    @if (file_exists (public_path ('filename.ico'))))
      << true, because the file exists >>
    @other
      << false, because the file couldn't be found >>
    @end if
    

    如果我使用 asset() 而不是 public_path(),它将无法正常工作。

    使用 Public_path(),您将获得文件的物理路径(来自公共文件夹)。

    【讨论】:

      【解决方案4】:
      @if (file_exists( 'public/images/user/'.$userData["avtar"]) ) 
           <a href="#"><img src="{{asset('images/user/'.$userData["avtar"])}}" alt="11"></a>
      
      @else
           <a href="#"><img src="{{asset('bouts9/assets/images/profile/profile.png')}}" alt="Profile Picture"></a>
      
      @endif
      

      【讨论】:

        【解决方案5】:

        这应该适用于 Laravel 8

        file_exists("assets/images/image.extension")
        

        file_exists 直接查看公共路径内部,因此您可以直接从公共文件夹中传递路径

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-12
          • 1970-01-01
          • 2016-05-13
          • 2016-04-02
          • 1970-01-01
          • 2011-09-07
          • 2017-02-02
          • 1970-01-01
          相关资源
          最近更新 更多