可用自版本 | 2.0 |
---|
Arrayable应该实现的接口的类想要支持可定制的表示的实例。
例如,如果一个类实现Arrayable,通过调用toArray(),这个类的一个实例可以被转换成一个数组(包括其所有嵌入的对象),然后可以进一步容易转变成其他格式,比如JSON、XML。
字段()和域外()方法允许实现类定制,哪些数据应该如何格式化并放入toArray()的结果。
公共方法
方法 | 描述 | 定义在 |
---|---|---|
extraFields() | 返回的列表附加字段,可以由toArray()返回除了这些字段中列出()。 | yii\base\Arrayable |
fields() | 返回的字段列表应该返回默认的toArray()当没有指定特定的字段。 | yii\base\Arrayable |
toArray() | 将对象转换为一个数组。 | yii\base\Arrayable |
方法详情
extraFields() public abstract 方法
返回的列表附加字段,可以由toArray()返回除了这些字段中列出()。
T他的方法类似于字段()除了列表字段声明该方法不返回默认toArray()。只有当一个字段列表中显式地请求,它将被包括在toArray()的结果。
参见:
public abstract array extraFields ( ) | ||
return | array | 可扩展的字段名称或字段定义的列表。请参考字段()返回值的格式。 |
---|
fields() public abstract 方法
返回的字段列表应该返回默认的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 ($model) {
return $model->first_name . ' ' . $model->last_name;
},
];
参见 toArray().
public abstract array fields ( ) | ||
return | array | 字段名和字段定义的列表。 |
---|
toArray() public abstract 方法
将对象转换为一个数组。
public abstract array toArray ( array $fields = [], array $expand = [], $recursive = true ) | ||
$fields | array | 输出数组中应该包含的字段。字段不指定fields() 将被忽略。如果该参数为空,所有字段中指定的fields() 将返回。 |
$expand | array | 输出数组中应该包含的附加字段。没有指定extraFields()()将被忽略。如果该参数为空,没有额外的字段将被归还。 |
$recursive | boolean | 是否嵌入对象的递归返回数组表示。 |
return | array | 对象的数组表示 |
---|