Laravel 在 Blade 中获取文件扩展名

Jam*_*mie 2 php laravel laravel-blade

当我想在用户上传了 docx 文件时显示 docx 图标时,我收到以下错误:

Call to undefined method Illuminate\Database\Query\Builder::getClientOriginalExtension() (View: /home/vagrant/Code/support/local/resources/views/users/ticket.blade.php)
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样:

@foreach($ticket->image as $photo)
     @if($photo->getClientOriginalExtension() == 'docx') 
           <img src="icons/word.png">
      @else
<a href="{{ $photo->path }}"><img src="{{ $photo->path }}" alt=""/></a>
       @endif
 @endforeach
Run Code Online (Sandbox Code Playgroud)

显然这getClientOriginalExtension()是不对的。但我应该用什么来代替呢?

Mar*_*łek 6

你应该使用:

@if (pathinfo($photo->path, PATHINFO_EXTENSION) == 'docx')
Run Code Online (Sandbox Code Playgroud)

代替:

@if($photo->getClientOriginalExtension() == 'docx') 
Run Code Online (Sandbox Code Playgroud)