Загрузите файл из админки voyager с помощью laravel - PullRequest
0 голосов
/ 30 апреля 2020

Я использую Voyager в качестве администратора с Laravel. Я хочу загрузить файл, загруженный из панели администратора. Так что я пометил поле в таблице products как file. Проблема в том, что я не могу понять, как извлечь файл, и мне не удалось найти любые документы по этому поводу. Voyager переименует файл и создаст собственную папку. Перед использованием voyager я смог отлично загрузить файл, используя ссылку, используя функцию storage_path.

Вот что я пробовал

HomeController. php

public function download($id)
    {
        $product = Product::where('id',$id)->firstOrFail();
        $down = $product->download()->get();
        foreach($down as $item){
            $path = storage_path($item->link);
        }

        return response()->download($path);
    }

contentview.blade. php

<form action="{{route('home.download',$product->id)}}" method="GET">
          {{csrf_field()}}
          <input type="hidden" name="id" value="{{$product->product_id}}">
          <input type="hidden" name="name" value="{{$product->name}}">
          <input type="hidden" name="price" value="{{$product->price}}">
          <button type="submit" class="cart-button card-game-btn align-self-end position-absolute"><i class="fas fa-download">&nbsp;</i>Download</button>
        </form>

РЕДАКТИРОВАТЬ: Насколько я понимаю, Voyager возвращает файл Json, поэтому я пробовал также это , но я не могу избавиться от "попытки получить Trying to get property 'download_link' of non-object ошибку

public function download($id)
    {
        $product = Product::where('id',$id)->firstOrFail();
        $down = $product->download()->get();
        $down = json_decode($down);

        foreach($down as $item){
           // dd();
            $path =json_decode($item->link);
        }
      //  dd($path);
        return response()->download($path->download_link);
        //dd($down);
    }

Кто-нибудь знает, как решить эту проблему?

...