Laravel

laravel框架中created_at、updated_at、deleted_at字段返回格式处理

2019-05-27 12:47:08

我们在使用laravel框架开发的时候有时,created_at、updated_at、deleted_at这三个字段是自动维护的

但是我们有时候需要定制化的返回格式,比如直接返回年月日,或者返回时间戳,或者返回多少小时以前,多少分钟以前

这时候就需要我们手动修改后返回了,但是每次在查询后修改在返回这样效率显得有些低了,于是我就尝试能不能直接

在模型中查询出需要的数据格式,直接返回,下面直接贴代码了


<?php

namespace App\Models;


use Carbon\Carbon;
use Illuminate\Database\Eloquent\SoftDeletes;
use Nette\Utils\DateTime;

class FansDayChart extends Base
{
    use SoftDeletes;
    //表名
    protected $table = 'fans_day_chart';
    //主键
    protected $primaryKey = 'id';
    //过滤黑名单字段
    public $guarded = [];


    /**
     * 格式化返回时间
     * @param $timestamp
     * @return string
     * @throws \Exception
     */
    public static function getCreatedAtAttribute($timestamp)
    {
        $date = new DateTime();
        $timestamp = $date->setTimestamp($timestamp);
        if (Carbon::now() < Carbon::parse($timestamp)->addDays(10)) {
            return Carbon::parse($timestamp)->diffForHumans();
        }
        return $timestamp->format('Y-m-d H:i:s');
    }

    /**
     * 格式化返回时间
     * @param $timestamp
     * @return string
     * @throws \Exception
     */
    public static function getUpdatedAtAttribute($timestamp)
    {
        $date = new DateTime();
        $timestamp = $date->setTimestamp($timestamp);
        if (Carbon::now() < Carbon::parse($timestamp)->addDays(10)) {
            return Carbon::parse($timestamp)->diffForHumans();
        }
        return $timestamp->format('Y-m-d H:i:s');
    }
}

相信大家在这个模型里面大致已经猜到了,没错上面模型中的两个方法就是关键


getCreatedAtAttribute()、getUpdatedAtAttribute()分别对应的是created_atupdated_at字段的
他们负责获取时间的格式,并且返回,这里的get******AtAttribute符号部分就是对应字段的名称,首字母
要大写,然后默认会传入时间戳这里在理需要的模型加入尚需方法后,框架就会使用当前申明的查询方法覆盖
框架默认的时间戳处理方法

返回的数据例子如下


{
    "code": 20000,
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 4,
                "appid": "wxc23f088c4a4f9dde",
                "name": "追梦小屋",
                "price": 0,
                "total": 0,
                "created_at": "1天前",
                "updated_at": "3小时前",
                "deleted_at": null
            },
            {
                "id": 5,
                "appid": "wx24f1bdc282e9141d",
                "name": "追梦小窝",
                "price": 0,
                "total": 0,
                "created_at": "1天前",
                "updated_at": "3小时前",
                "deleted_at": null
            },
            {
                "id": 6,
                "appid": "wx3cc*****f3b1922",
                "name": "******",
                "price": 0,
                "total": 0,
                "created_at": "1天前",
                "updated_at": "3小时前",
                "deleted_at": null
            },
            {
                "id": 1,
                "appid": "wxc23f088c4a4f9dde",
                "name": "追梦小屋",
                "price": 0,
                "total": 0,
                "created_at": "3天前",
                "updated_at": "1天前",
                "deleted_at": null
            },
            {
                "id": 2,
                "appid": "wx24f1bdc282e9141d",
                "name": "追梦小窝",
                "price": 0,
                "total": 0,
                "created_at": "3天前",
                "updated_at": "1天前",
                "deleted_at": null
            },
            {
                "id": 3,
                "appid": "wx3cc4****f3b1922",
                "name": "******",
                "price": 9,
                "total": 3,
                "created_at": "3天前",
                "updated_at": "1天前",
                "deleted_at": null
            }
        ],
        "first_page_url": "https://api.54zm.com/wechat/statistics/day_chart?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "https://api.54zm.com/wechat/statistics/day_chart?page=1",
        "next_page_url": null,
        "path": "https://api.54zm.com/wechat/statistics/day_chart",
        "per_page": 15,
        "prev_page_url": null,
        "to": 6,
        "total": 6
    },
    "message": "ok"
}



统计:
0 评论
0 查看


马上批阅

评论该篇文章

Laravel技术交流群
扫码关注体验小程序
小程序二维码 小程序码
站长最新说说动态

欢迎来到追梦小窝的博客,有什么值得收藏的就拿去用吧,不客气,大部分内容来自互联网,如有侵犯版权请您注明来信,我将会第一时间妥善处理


最新评论
共6条评论
image
2017-07-07 14:04:55 追梦小窝 评论了 今天画了一个小图标
来自:59.40.248.60
@皮皮豪:我QQ543619552
image
2017-07-07 14:04:27 追梦小窝 评论了 emlog缩略图不同实现方法:正文-附件-随机图片
来自:59.40.248.60
@皮皮豪:那里不会,教程说的很详细
image
2017-07-07 12:06:08 皮皮豪 评论了 emlog缩略图不同实现方法:正文-附件-随机图片
来自:120.82.74.53
看了还是不会啊
image
2017-07-07 18:23:25 皮皮豪 评论了 今天画了一个小图标
来自:120.82.74.36
怎么联系你啊
image
2017-07-07 12:07:49 追梦小窝 评论了 今天画了一个小图标
来自:113.91.34.248
@文森:别笑话我了
image
2017-04-04 22:29:04 文森 评论了 今天画了一个小图标
来自:223.74.150.13
这个图标看上去很nice
站点统计
  • 文章总数: 139篇
  • 微语总数: 6条
  • 评论总数: 6条
  • 运行天数: 1477天