建立
ProjectResource.php
檔。
1
|
php artisan make:resource ProjectResource
|
指定 API 欄位,並使用 whenLoaded
方法避免總是載入關聯資料。
1 2 3 4 5 6 7 8 9 10 11 12
|
public function ($request) { return [ 'id' => $this->id, 'name' => $this->name, 'description' => $this->description, 'visibility' => $this->visibility, 'created_at' => $this->created_at->diffForHumans(), 'updated_at' => $this->updated_at->diffForHumans(), 'users' => UserResource::collection($this->whenLoaded('users')), ]; }
|
修改 ProjectController.php
檔。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
use AppProject; use AppHttpResourcesProjectResource as Resource;
public function index(Project $project) { $projects = $project->paginate();
return Resource::collection($projects); }
public function show(Project $project, $id) { $project = $project->find($id);
return new Resource($project); }
|
添加額外資訊。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
use IlluminateSupportStr;
class ResponseHelper { public static function response($content) { $meta = [ 'foo' => 'bar', ];
if (is_object($content) && Str::contains(class_basename($content), 'Resource')) { return $content->additional($meta); } } }
|
近期评论