可用自版本 | 2.0 |
---|
ArrayableTrait提供了一个通用的yii \ \ Arrayable基础接口实现。
ArrayableTrait实现toArray(尊重)的字段定义中声明的fields() 和extraFields().
公共方法
方法 | 描述 | 定义在 |
---|---|---|
extraFields() | 返回字段的列表,可以进一步扩大,返回toArray()。 | yii\base\ArrayableTrait |
fields() | 返回的字段列表应该返回默认的toArray()当没有指定特定的字段。 | yii\base\ArrayableTrait |
toArray() | 将模型转换为一个数组。 | yii\base\ArrayableTrait |
受保护的方法
方法 | 描述 | 定义在 |
---|---|---|
resolveFields() | 决定哪些字段可以由toArray()返回。 | yii\base\ArrayableTrait |
方法详情
extraFields() public 方法
返回字段的列表,可以进一步扩大,返回toArray()。
除了这个方法类似于字段()返回的字段列表,这个方法不返回默认toArray()。只有当扩展字段名称是显式指定当调用toArray(),将它们的值被导出。
默认实现返回一个空数组。
你可以重写这个方法返回一个可扩展的字段列表基于一些上下文信息(如当前应用程序用户)。
参见:
public array extraFields ( ) | ||
return | array | 可扩展的字段名称或字段定义的列表。请参考字段()返回值的格式。 |
---|
fields() public 方法
返回的字段列表应该返回默认的toArray()当没有指定特定的字段。
一个字段是一个名叫toArray()返回数组中的元素。
此方法应该返回一个数组字段名和字段定义。如果是前者,字段名称将被视为一个对象属性名称的值将被用作字段值。如果是后者,数组的键应该是字段名,而数组的值应该是对应的字段定义可以是一个对象的属性名或一个PHP调用返回相应的字段值。可赎回的签名:
function ($model, $field) {
// return field value
}
例如,下面的代码声明四个字段:
email
: 字段名是一样的属性名email
;- firstName和lastName:firstName和lastName字段名称,和他们的价值观得到first_nameand last_name属性;
- fullName:fullName字段名。它的值是通过连接first_name和last_name。
return [
'email',
'firstName' => 'first_name',
'lastName' => 'last_name',
'fullName' => function () {
return $this->first_name . ' ' . $this->last_name;
},
];
在这个方法中,您可能还想返回不同的字段列表基于一些上下文信息。例如,根据当前应用程序用户的特权,你可能会返回不同的字段或过滤掉一些字段可见.
该方法的默认实现返回公众对象成员变量索引.
参见 toArray().
public array fields ( ) | ||
return | array | 字段名和字段定义的列表。 |
---|
resolveFields() protected 方法
决定哪些字段可以返回toArray().
该方法将检查请求的字段中声明对那些字段()和域外(),用于确定哪些字段是可以恢复的.
protected array resolveFields ( array $fields, array $expand ) | ||
$fields | array | 被请求的字段导出 |
$expand | array | 对于出口而言被请求的其他字段 |
return | array | 导出字段的列表。数组的键字段名称,数组值对应的对象属性名称或PHP调用返回的字段值。 |
---|
toArray() public 方法
将模型转换为一个数组.
该方法首先将确定哪些字段被包括在生成的数组通过调用resolveFields()。然后,它将把模型转化为一个数组,这些字段。如果美元递归是真的,任何嵌入对象也将转化为数组.
如果模型实现了yii\web\Linkable,生成的数组也将_link元素指的是一个链接列表,指定的接口
public array toArray ( array $fields = [], array $expand = [], $recursive = true ) | ||
$fields | array | 被请求的字段。如果空,所有字段指定的字段()将返回。 |
$expand | array | 对于出口而言被请求的其他字段。只有字段中声明extraFields()将被考虑。 |
$recursive | boolean | 是否嵌入对象的递归返回数组表示。 |
return | array | 对象的数组表示 |
---|