转 Yii2模型简介
|-转 Yii2模型简介-字段
字段字段是模型通过调用yii\base\Model::toArray() 生成的数组的单元名。默认情况下,字段名和属性名对应,但是你可以通过覆盖 fields() 和/或 yii\base\Model::extraFields() ...
字段
字段是模型通过调用yii\base\Model::toArray() 生成的数组的单元名。
默认情况下,字段名和属性名对应,但是你可以通过覆盖 fields() 和/或 yii\base\Model::extraFields() 方法来改变这种行为, 两个方法都返回一个字段定义列表,fields()
方法定义的字段是默认字段, 表示toArray()
方法默认会返回这些字段。 extraFields()
方法定义额外可用字段, 通过toArray()
方法指定$expand
参数来返回这些额外可用字段。 例如如下代码会返回fields()
方法定义的所有字段和extraFields()
方法定义的prettyName
and fullAddress
字段。
$array = $model->toArray([], ['prettyName', 'fullAddress']);
可通过覆盖 fields()
来增加、删除、重命名和重定义字段, fields()
方法返回值应为数组, 数组的键为字段名,数组的值为对应的可为属性名或匿名函数返回的字段定义对应的值。 特使情况下,如果字段名和属性定义名相同,可以省略数组键, 例如:
// 明确列出每个字段,特别用于你想确保数据表或模型
// 属性改变不会导致你的字段改变(保证后端的API兼容)。
public function fields()
{
return [
// 字段名和属性名相同
'id',
// 字段名为 "email",对应属性名为 "email_address"
'email' => 'email_address',
// 字段名为 "name", 值通过PHP代码返回
'name' => function () {
return $this->first_name . ' ' . $this->last_name;
},
];
}
// 过滤掉一些字段,特别用于
// 你想继承父类实现并不想用一些敏感字段
public function fields()
{
$fields = parent::fields();
// 去掉一些包含敏感信息的字段
unset($fields['auth_key'], $fields['password_hash'], $fields['password_reset_token']);
return $fields;
}
警告:由于模型的所有属性会被包含在导出数组,最好检查数据确保没包含敏感数据, 如果有敏感数据,应覆盖 fields()
方法过滤掉, 在上述列子中,我们选择过滤掉 auth_key
, password_hash
and password_reset_token
。...
浏览更多内容请先登录。
立即注册
更新于:2018-01-23 00:32:56
相关内容
说说国产电影
大陆电影《霸王别姬》到底如何?
周星驰的喜剧之王
真正的难忘,再说周星驰,《大话西游》两部曲
不得不提的《英雄本色》,一帮演员和剧组太给力了,当然导演厉害了!
2010年后的国产电影,看来除了《让子弹飞》其他都可以带过了?
《芳华》这样露大腿合适吗?
《国士无双》还是那么好看
算是知道花木兰那么多成本都花在哪了
评论《八佰》-为了照顾部分同学的逻辑思维能力,俺们通俗一把
【豆瓣评论】评《中国合伙人》
贺岁片 东成西就(1993)(国语) 精彩片段
推荐内容