Laravel API リソースを使用してオンザフライで作成した画像を保存せずに返すことはできますか? コントローラーで試した
$sum = Product::where('slug', $product)->first();
$img = Image::make('image_path')->resize(400, 400);
$img->text(name, 205, 138, function($font) {
$font->file('fonts/BostonHeavy.woff');
$font->size(42);
$font->color('#ffffff');
$font->align('center');
$font->valign('top');
});
return (new ProductResource($sum))->foo($img);
Laravel API リソース
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class ProductResource extends JsonResource
{
protected $image;
public function foo($value){
$this->image = $value;
return $this;
}
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'image' => $this->image,
];
}
}
返されるもの
{
"data": {
"id": 1,
"name": "Such a pickle",
"image": {
"encoded": "",
"mime": "image/jpeg",
"dirname": null,
"basename": null,
"extension": null,
"filename": null
}
}
}
これは明らかに、 return $img->response('jpg'); を使用するように指示されているドキュメントでは機能していません。それ自体は機能しますが、2 つの get リクエストを行う代わりに、それをレスポンスに追加したいと考えています。