指南
响应
了解模型如何被转换为 JSON 响应。
Orion 使用 API 资源作为 Eloquent 模型与最终返回给 API 客户端的响应之间的转换层。
为了让这些类能够被自动解析,它们应遵循如下命名模式:App\Http\Resources\<model>Resource 或 App\Http\Resources\<model>CollectionResource。
例如,如果你有一个 App\Models\Message 模型,对应的资源类就是 App\Http\Resources\MessageResource 或 App\Http\Resources\MessageCollectionResource。
如果应用中的资源类名不遵循该命名约定,或者你只是想更加明确,可以在控制器上将 protected $resource 或 protected $collectionResource 属性设置为资源类的完全限定类名。
<?php
namespace App\Http\Controllers\Api;
use App\Models\Message;
use App\Http\Resources\CustomMessageResource;
use App\Http\Resources\CustomMessageCollectionResource;
class MessagesController extends ApiController
{
/**
* @var string $model
*/
protected $model = Message::class;
/**
* @var string $resource
*/
protected $resource = CustomMessageResource::class;
/**
* @var string $collectionResource
*/
protected $collectionResource = CustomMessageCollectionResource::class;
}
Orion\Http\Resources\Resource 和 Orion\Http\Resources\CollectionResource 类上都提供了一个便捷的 toArrayWithMerge 方法——不妨去看一看。