因此,我要在laravel中创建用户个人资料,如果用户未上传具有以下if / else条件的他/她自己的个人资料图片,则希望显示通用个人资料图片:
@if(false)
<img src="img/uploads/avatars/{{$user->Uname}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/{{$user->avatar}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
我需要检查文件是否与用户的用户名同名(在上面指定的位置上载创建具有该名称的文件)。false是文件存在的条件,但我面临着其他解决方案中找不到的2个问题:
文件存在于存储外部的路径中。 (公开存在 文件夹)
我想在不使用存储或文件外观的情况下做到这一点。
注意:对filesystems.php进行了以下更改
'local' => [
'driver' => 'local',
'root' => storage_path('../public/img/uploads/'),
]
编辑:问题类似于此处提到的问题,但该解决方案对我不起作用:Determining If a File Exists in Laravel 5
编辑#2: 最终工作代码:
@if(is_file("img/uploads/avatars/{$user->Uname}"))
<img src="img/uploads/avatars/{{$user->Uname}}" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/default.jpg" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
答案 0 :(得分:2)
您应该检查文件是否存在
@if(is_file('/path/to/file.ext'))
// code
@else
// code
@endif
您可以使用laravel帮助器,例如:
@if(is_file(public_path('img/uploads/avatars/' . $user->Uname)))
//<img src="{{ asset('img/uploads/avatars' . $user->Uname) }}">
答案 1 :(得分:-1)
您的图片src中没有文件扩展名。
@if(file_exists('img/uploads/avatars/'.$user->Uname.'png'))
<img src="img/uploads/avatars/{{$user->Uname}}.png" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@else
<img src="img/uploads/avatars/{{$user->avatar}}.png" class="img-thumbnail" alt="{{$user->Uname}}'s Profile Pic">
@endif
根据需要使用“ .png”或“ .jpg”。