如果Laravel的Blade模板检查文件是否存在

时间:2013-05-22 15:04:03

标签: laravel laravel-4

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

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

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

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

不起作用。

3 个答案:

答案 0 :(得分:17)

这对我有用,favicon.ico在公众面前:

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

所以我认为你必须使用@if(file_exists('covers/1.jpg'))

答案 1 :(得分:8)

在Laravel 4中你可以使用:

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

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

答案 2 :(得分:0)

在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(),您将从公共文件夹中获取文件的物理路径。