我正在尝试将带有API响应的文件发送给邮递员
return response($company)->file($company->logo, $company->main_photo);
laravel woops返回:
Method Illuminate\Http\Response::file does not exist.
我在做什么错了?
答案 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,
];
}
}