Active Record 属性如何格式化? [ 新手入门 ]
使用-数据转换无效
数据表有一个created字段,int类型,存的时间戳,类似1599195918
想在保存和读取的时候自己转换
实现了
public function getCreated(){
return date('Y/m/d', $this->created);
}
最后查询
Category::find()
->all();
结果还是:1599195918
共 3 条回复
-
可以试试钩子
afterFind()
,限制:只能使用AR
的find,而不能使用Query
或者Connection
。public function afterFind(){ parent::afterFind(); $this->created = date('Y/m/d', $this->created); }
参考链接: https://segmentfault.com/q/1010000009408189/a-1020000009411484
共 1 条回复 -
目前 用查询EVENT_AFTER_FIND事件回调处理,谁有更高效的方法 欢迎分享。
$this->on(self::EVENT_AFTER_FIND,function ($event){ $tm =$event->sender; $tm->created = date('Y/m/d', $tm->created); });
共 1 条回复 -
这个有两种情况:
1.使用php在view中嵌套,渲染到模板的时候,例如你这里是list,渲染到Gridview中'columns' => [ 'article_id', [ 'attribute' => 'created' 'value' => function($model){ return date('Y/m/d', $this->created); } ] ]
2.RestAPI中的字段格式化
在ActiveRecord 模型中重写fields方法public function fields() { return [ 'articleId' => 'article_id', 'created' => function($model){ return date('Y/m/d', $this->created); } ]; }
villers
注册时间:2020-09-04
最后登录:2020-10-16
在线时长:2小时2分
最后登录:2020-10-16
在线时长:2小时2分
- 粉丝0
- 金钱55
- 威望0
- 积分75