php - 确定 Laravel 5 中文件是否存在

标签 php laravel laravel-5 laravel-5.1

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

<小时/>

我已经尝试过

  @if(file_exists(public_path().'/images/photos/account/{{Auth::user()->account_id}}.png'))
    <img src="/images/photos/account/{{Auth::user()->account_id}}.png" alt="">
  @else
    <img src="/images/photos/account/default.png" alt="">
  @endif
<小时/>

结果

当我 100% 确定 1002.png 存在时,它会不断加载我的默认图像。

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

最佳答案

尽可能减少 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
<img src="{!! Auth::user()->photo() !!}" alt="">

使您的模板更干净并使用更少的代码。您还可以对此方法编写单元测试来测试您的语句:-)

关于php - 确定 Laravel 5 中文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34028575/

相关文章:

php - 使用php读取Json数据响应

php - 为什么php的in_array如果传递0就返回true?

javascript - DropzoneJS 和 Laravel - 输出表单验证错误

laravel - 在 Laravel 4 中发送模型的嵌套数组的最佳方式是什么?

php - 拉维尔 5 : Data does not saved through blade form

php - Laravel 5 基于角色的访问控制

javascript - 可以在多嵌套 css 菜单中突出显示路径吗?

php - Mysql更新计数器

php - "SQLSTATE[HY000]: General error: 1364 Field ' user_id ' doesn' t 有默认值(SQL : insert into

在任何域上的Laravel 5子域路由