Laravel
Eloquent resources
Example
return new UserResource($user);
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
/**
* @mixin User
*/
class UserResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
}


Note that @mixin
tag is required to correctly read model properties in the resource class. This tag will also help if you are using a tool like PHPStan to analyze your code.
How to enable
To enable support for Eloquent resources, make sure you have the following entries in extensions
array in your configuration file (enabled by default).
'extensions' => [
/**
* To enable support for `Illuminate\Http\Resources\Json\JsonResource`
*/
AutoDoc\Laravel\Extensions\ResourceJson::class,
/**
* To enable support for `Illuminate\Http\Resources\Json\ResourceCollection`
*/
AutoDoc\Laravel\Extensions\ResourceCollectionJson::class,
/**
* Handles `collection` static method calls on `Illuminate\Http\Resources\Json\JsonResource`
*/
AutoDoc\Laravel\Extensions\ResourceStaticCall::class,
],