没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\rest\Serializer

继承yii\rest\Serializer » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/rest/Serializer.php

Serializer 将资源对象和集合转换为数组表示。

Serializer 主要由 REST 控制器用于将不同的对象转换为数组表示 这样它们可以通过响应格式化程序进一步转换为不同的格式,例如JSON,XML。

默认的实现:将 yii\base\Model 对象作为资源处理,将 yii\data\DataProviderInterface 对象作为集合处理。 你可以覆盖 serialize() 来处理更多类型。

公共属性

隐藏继承的属性

属性类型描述被定义在
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$collectionEnvelope string 用于返回集合中资源对象的索引名称(例如 items)。 在提供资源集合时使用。设置此选项并启用分页后 将以以下格式返回集合: `php [ 'items' => [. yii\rest\Serializer
$currentPageHeader string HTTP 标头名称,包含有关数据项当前页数的信息。 在使用分页提供资源集合时使用此选项。 yii\rest\Serializer
$expandParam string 查询参数的名称,包含有关应返回哪些字段的信息 除了资源对象的 $fieldsParam 中列出的之外。 yii\rest\Serializer
$fieldsParam string 查询参数的名称,包含有关应返回哪些字段的信息 对于 yii\base\Model 对象,如果未提供参数或为空,则 yii\base\Model::fields() 定义的默认字段集 将被返回。 yii\rest\Serializer
$linksEnvelope string 用于返回链接对象的索引名称(例如 _links)。 collectionEnvelope 设置后它才生效。 yii\rest\Serializer
$metaEnvelope string 用于返回链接对象的索引名称(例如 _meta)。 collectionEnvelope 设置后它才生效。 yii\rest\Serializer
$pageCountHeader string HTTP 标头名称,包含有关数据项总页数的信息。 在使用分页提供资源集合时使用此选项。 yii\rest\Serializer
$perPageHeader string HTTP 标头名称,包含有关数据项每页的数据个数的信息 在使用分页提供资源集合时使用此选项。 yii\rest\Serializer
$preserveKeys boolean 在序列化集合数据时是否保留数组键。 将其设置为 true 以允许将集合序列化为 JSON 对象时,数组键用于索引对应的模型对象。 无论如何,默认是将所有集合序列化为数组 如何索引数组。 yii\rest\Serializer
$request yii\web\Request 当前请求,未设置则默认应用中的 request 组件。 yii\rest\Serializer
$response yii\web\Response 当前响应,未设置则默认应用中的 request 组件。 yii\rest\Serializer
$totalCountHeader string HTTP 标头名称,包含有关数据项总数的信息。 在使用分页提供资源集合时使用此选项。 yii\rest\Serializer

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\rest\Serializer
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
serialize() 将给定数据序列化为可轻松转换为其他格式的格式。 此方法主要将识别类型的对象转换为数组表示。 它不会对未知对象类型或非对象数据进行转换。 默认的实现是仅仅处理 yii\base\Modelyii\data\DataProviderInterface 。 你可以覆盖此方法以支持更多对象类型。 yii\rest\Serializer
trigger() Triggers an event. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述被定义在
addPaginationHeaders() 将分页信息加到 HTTP 响应头部。 yii\rest\Serializer
getRequestedFields() yii\rest\Serializer
serializeDataProvider() 序列化一个数据提供器。 yii\rest\Serializer
serializeModel() 序列化模型对象。 yii\rest\Serializer
serializeModelErrors() 序列化模型中的验证错误信息。 yii\rest\Serializer
serializeModels() 序列化一组模型 yii\rest\Serializer
serializePagination() 序列化分页器为数组格式。 yii\rest\Serializer

属性详情

$collectionEnvelope 公共 属性

用于返回集合中资源对象的索引名称(例如 items)。 在提供资源集合时使用。设置此选项并启用分页后 将以以下格式返回集合:

[
    'items' => [...],  // 假如设的索引是 "items"
    '_links' => {  // 分页链接集,此数据通过 Pagination::getLinks() 处理返回
        'self' => '...',
        'next' => '...',
        'last' => '...',
    },
    '_meta' => {  // Pagination::toArray() 返回的 meta 信息。
        'totalCount' => 100,
        'pageCount' => 5,
        'currentPage' => 1,
        'perPage' => 20,
    },
]

如果未设置此属性,则将直接返回资源数组,而不使用索引。 _links_meta 中显示的分页信息被放置到 HTTP 头部以供访问。

$currentPageHeader 公共 属性

HTTP 标头名称,包含有关数据项当前页数的信息。 在使用分页提供资源集合时使用此选项。

public string $currentPageHeader 'X-Pagination-Current-Page'
$expandParam 公共 属性

查询参数的名称,包含有关应返回哪些字段的信息 除了资源对象的 $fieldsParam 中列出的之外。

public string $expandParam 'expand'
$fieldsParam 公共 属性

查询参数的名称,包含有关应返回哪些字段的信息 对于 yii\base\Model 对象,如果未提供参数或为空,则 yii\base\Model::fields() 定义的默认字段集 将被返回。

public string $fieldsParam 'fields'
$linksEnvelope 公共 属性 (自版本 2.0.4 可用)

用于返回链接对象的索引名称(例如 _links)。 collectionEnvelope 设置后它才生效。

public string $linksEnvelope '_links'
$metaEnvelope 公共 属性 (自版本 2.0.4 可用)

用于返回链接对象的索引名称(例如 _meta)。 collectionEnvelope 设置后它才生效。

public string $metaEnvelope '_meta'
$pageCountHeader 公共 属性

HTTP 标头名称,包含有关数据项总页数的信息。 在使用分页提供资源集合时使用此选项。

public string $pageCountHeader 'X-Pagination-Page-Count'
$perPageHeader 公共 属性

HTTP 标头名称,包含有关数据项每页的数据个数的信息 在使用分页提供资源集合时使用此选项。

public string $perPageHeader 'X-Pagination-Per-Page'
$preserveKeys 公共 属性 (自版本 2.0.10 可用)

在序列化集合数据时是否保留数组键。 将其设置为 true 以允许将集合序列化为 JSON 对象时,数组键用于索引对应的模型对象。 无论如何,默认是将所有集合序列化为数组 如何索引数组。

参见 serializeDataProvider().

public boolean $preserveKeys false
$request 公共 属性

当前请求,未设置则默认应用中的 request 组件。

public yii\web\Request $request null
$response 公共 属性

当前响应,未设置则默认应用中的 request 组件。

$totalCountHeader 公共 属性

HTTP 标头名称,包含有关数据项总数的信息。 在使用分页提供资源集合时使用此选项。

public string $totalCountHeader 'X-Pagination-Total-Count'

方法详情

addPaginationHeaders() 受保护 方法

将分页信息加到 HTTP 响应头部。

protected void addPaginationHeaders($pagination)
$pagination yii\data\Pagination
getRequestedFields() 受保护 方法
protected array getRequestedFields()
return array

所请求字段的名称。 The first element is an array 第一个元素是一个数组,表示请求的默认字段列表, 而第二个元素是除默认字段外,还请求的一系列额外字段列表。

init() 公共 方法

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public void init()
serialize() 公共 方法

将给定数据序列化为可轻松转换为其他格式的格式。 此方法主要将识别类型的对象转换为数组表示。 它不会对未知对象类型或非对象数据进行转换。 默认的实现是仅仅处理 yii\base\Modelyii\data\DataProviderInterface 。 你可以覆盖此方法以支持更多对象类型。

public mixed serialize($data)
$data mixed

要被序列化的数据。

return mixed

The 转换后的数据。

serializeDataProvider() 受保护 方法

序列化一个数据提供器。

protected array serializeDataProvider($dataProvider)
$dataProvider yii\data\DataProviderInterface
return array

数据提供器的数组表示。

serializeModel() 受保护 方法

序列化模型对象。

protected array serializeModel($model)
$model yii\base\Arrayable
return array

模型对象的数组表示

serializeModelErrors() 受保护 方法

序列化模型中的验证错误信息。

protected array serializeModelErrors($model)
$model yii\base\Model
return array

验证错误的数组表示

serializeModels() 受保护 方法

序列化一组模型

protected array serializeModels(array $models)
$models array
return array

一组模型的数组表示

serializePagination() 受保护 方法

序列化分页器为数组格式。

参见 addPaginationHeaders().

protected array serializePagination($pagination)
$pagination yii\data\Pagination
return array

分页器的数组表示