2016-05-29 5 views
1

Я пытаюсь создать простой файловый менеджер в laravel, на самом деле я просто хочу видеть все файлы из папки «файлы» и использовать laravel Storage Мне удалось получить имя от все файлы внутри папки, но я хочу получить больше данных, таких как размер каждого файла.Laravel 5 Получить размер из всех файлов внутри каталога

Контроллер:

public function showFiles() { 
    $files = Storage::disk('publicfiles')->files(); 
    return view('files')->with('files', $files); 
} 

Вид:

@foreach($files as $file) 
    <tr> 
     <td>{{$file}}</td> 
     <td></td> 
     <td class="actions-hover actions-fade"> 
      <a href=""><i class="fa fa-download"></i></a> 
     </td> 
    </tr> 
@endforeach 

Getting this .

Как я уже сказал, я хочу получить размер, но как я могу это сделать, я решил обработать это в представлении, но я действительно не хочу этого делать.

Это, как говорится, я на самом деле знаю, как сделать это так:

@foreach($files as $file) 
    <tr> 
     <td>{{$file}}</td> 
     <td> 
     <?php 
     $size = Storage::disk('publicfiles')->size($file); 
     echo $size; 
     ?> 

     </td> 
     <td class="actions-hover actions-fade"> 
      <a href=""><i class="fa fa-download"></i></a> 
     </td> 
    </tr> 
@endforeach 

Но я думаю, что это не так, чтобы сделать это в правом зрения?

+0

Конечно, это неправильно делать с точки зрения. – Abhishek

ответ

1

Да, это не очень хорошая идея. Просто измените свой метод контроллера следующим образом:

public function showFiles() { 
    $files_with_size = array(); 
    $files = Storage::disk('publicfiles')->files(); 
    foreach ($files as $key => $file) { 
    $files_with_size[$key]['name'] = $file; 
    $files_with_size[$key]['size'] = Storage::disk('publicfiles')->size($file); 
    } 
    dd($files_with_size); 
} 

Или вы можете даже сделать вспомогательную функцию для того же самого.

+0

Awesome thanks <3 :) Я не об этом разбирался, я думаю, я долго не спал –

Смежные вопросы