php detailview,GridView以及DetailView的数据格式化

GridView和DetailView实在是太强大了。

但是正因为如此,这两个也做了很厚实的封装。当有细节调整的时候,有时候就总感觉不如自己写出来的灵活。

各有利弊吧。

这里整理了一下当填充的数据需要格式化时的几种方法,可能不全,找到后随时加。

1.直接在标签里用预置的格式化方式去格式化

如想着格式化一下时间,那么可以这样

[

'attribute' => 'updated_at',

'format' => ['date', 'php:Y-m-d H:i:s'],

]

上边的format就是格式方式啦,其他的格式化方式可以去i18n的formatter里去查。

2.直接调取yii的formatter

[

'attribute' => 'created_at',

'value'=> Yii::$app->formatter->asDate($model->created_at,"php:Y-m-d H:i:s"),

],

看了代码就不具体解释了

3.直接调自己写的方法

有时候,可能框架提供的格式化方法并不够用,想自定义一个,那么也可以。

可以把方法定义到model里,或者是自己写一个静态类

调用方法如下

写到model里的可以这么调用

[

'attribute' => 'status',

'value'=> $model->generateStatus(),

],

记得在自己写的方法里return一个字符串作为值。

如果自己写的类,那么调用方式就和i18n的formatter一样了。

4.使用匿名函数方式自定义格式化

代码如下:

[

'attribute' => 'created_at',

'value'=> function($model){

return date('Y-m-d H:i:s',$model->created_at);

}

]

以上方法格式化了时间,但是这种匿名函数的形式只能在GridView里用,Detailview里用报错,暂时不知道为什么,有知道的欢迎回复一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值