файл метода возвращает метод Illuminate \ Http \ Response :: файл не существует - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь отправить файл с моим ответом API почтальону

        return response($company)->file($company->logo, $company->main_photo);

Возвращает laravel woops:

Method Illuminate\Http\Response::file does not exist.

что я делаю не так?

1 Ответ

0 голосов
/ 04 сентября 2018

Я думаю, вам не нужно извлекать файл, используя вспомогательный метод response.

ему просто нужно отправить местоположение файла во внешний интерфейс, например, предположим, что ваша $company форма объекта выглядит примерно так:

{
    id: 1234,
    name: 'My Company',
    logo: 'images/companies/logo/1425.jpg'
}

тогда достаточно передать вышеуказанный объект вашему внешнему интерфейсу и в контракте попросить ваш внешний интерфейс поставить http://example.com/files/ в начале адреса файла, или вы можете определить класс JsonResource и переопределить путь к логотипу с абсолютным адресом (добавьте base-URL в начало).

это может выглядеть так:

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class ComapnyResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request
     * @return array
     */
    public function toArray($request)
    {
        return [
                'id' => $this->id,
                'name' => $this->name,
                'logo' => 'https://example.com/file/' . $this->logo,
        ];
    }
}

Посмотрите документацию .

...