当前位置:  开发笔记 > 编程语言 > 正文

确定Laravel 5中是否存在文件

如何解决《确定Laravel5中是否存在文件》经验,为你挑选了4个好方法。

目标:如果文件存在,请加载文件,否则加载default.png.


我试过了

  @if(file_exists(public_path().'/images/photos/account/{{Auth::user()->account_id}}.png'))
    
  @else
    
  @endif

结果

它保持加载我的默认图像,而我100%确定1002.png存在.

如何正确检查该文件是否存在?



1> Lee..:

无论您在哪里,都可以尝试减少if语句数量.例如,我会做以下事情:

// User Model
public function photo()
{
    if (file_exists( public_path() . '/images/photos/account/' . $this->account_id . '.png')) {
        return '/images/photos/account/' . $this->account_id .'.png';
    } else {
        return '/images/photos/account/default.png';
    }     
}

// Blade Template

使您的模板更清洁,使用更少的代码.您也可以在此方法上编写单元测试来测试您的陈述:-)


“ public_path(“ / images / photos / account / {$ this-> account_id} .png”)是写条件的一种更短,更易读的方式。

2> 小智..:

使用"File ::"检查文件是否存在于操作中,并将resut传递给视图

$result = File::exists($myfile);


从哪里导入`File`?

3> kyo..:

      @if(file_exists( public_path().'/images/photos/account/'.Auth::user()->account_id.'.png' ))
        
      @else
        
      @endif


@MarceloAgimóvel它的jut laravel结构.Blade是Laravel提供的简单而强大的模板引擎https://laravel.com/docs/5.6/blade

4> jOshT..:

在Laravel 5.5中,可以exists在存储外观上使用该方法:

https://laravel.com/docs/5.5/filesystem

$exists = Storage::disk('s3')->exists('file.jpg');

您可以使用三元表达式:

$file = ($exists) ? Storage::disk('s3')->get('file.jpg') : 
         Storage::disk('s3')->get('default.jpg');

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有