方法文件返回方法Illuminate \ Http \ Response :: file不存在

时间:2018-09-04 11:50:17

标签: api laravel-5 file-upload postman laravel-5.6

我正在尝试将带有API响应的文件发送给邮递员

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

laravel woops返回:

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

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

我认为您不需要使用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,
        ];
    }
}

看看documentation