Trait yii\base\ArrayableTrait

所有类 | 方法

可用自版本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 ( )
returnarray

可扩展的字段名称或字段定义的列表。请参考字段()返回值的格式。

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 ( )
returnarray

字段名和字段定义的列表。

resolveFields() protected 方法

决定哪些字段可以返回toArray().

该方法将检查请求的字段中声明对那些字段()和域外(),用于确定哪些字段是可以恢复的.

protected array resolveFields ( array $fields, array $expand )
$fieldsarray

被请求的字段导出

$expandarray

对于出口而言被请求的其他字段

returnarray

导出字段的列表。数组的键字段名称,数组值对应的对象属性名称或PHP调用返回的字段值。

toArray() public 方法

将模型转换为一个数组.

该方法首先将确定哪些字段被包括在生成的数组通过调用resolveFields()。然后,它将把模型转化为一个数组,这些字段。如果美元递归是真的,任何嵌入对象也将转化为数组.

如果模型实现了yii\web\Linkable,生成的数组也将_link元素指的是一个链接列表,指定的接口

public array toArray ( array $fields = [], array $expand = [], $recursive = true )
$fieldsarray

被请求的字段。如果空,所有字段指定的字段()将返回。

$expandarray

对于出口而言被请求的其他字段。只有字段中声明extraFields()将被考虑。

$recursiveboolean

是否嵌入对象的递归返回数组表示。

returnarray

对象的数组表示

转载于:https://my.oschina.net/u/2552765/blog/852414

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值