Php 模型数据是如何表示的

Php 模型数据是如何表示的,php,json,laravel,laravel-4,Php,Json,Laravel,Laravel 4,我有一个模型,我想作为json返回。我也想返回时间戳。问题是时间戳是以以下格式保存的2013-10-02 09:45:22,但我希望使用不同的格式。我仍然想要数据库中的原始格式,但当它作为JSON输出时,我想要2013.10.02。我发现您可以重写getDateFormat,但它似乎确实将数据库中使用的格式更改为 在返回数据之前,我总是可以遍历数据,但这种代码似乎属于模型 更新后的答复: 这解释了它是如何工作的 class User extends Eloquent { protect

我有一个模型,我想作为json返回。我也想返回时间戳。问题是时间戳是以以下格式保存的2013-10-02 09:45:22,但我希望使用不同的格式。我仍然想要数据库中的原始格式,但当它作为JSON输出时,我想要2013.10.02。我发现您可以重写getDateFormat,但它似乎确实将数据库中使用的格式更改为

在返回数据之前,我总是可以遍历数据,但这种代码似乎属于模型

更新后的答复:

这解释了它是如何工作的

class User extends Eloquent {

    protected $appends = array('my_date');    

    public function getMyDateAttribute()
    {
        return date('Y.m.d',strtotime($this->attributes['created_at']));
    }

}

关键部分是受保护的变量$appends,它确保在使用toArray或Json转换对象时包含访问器。

您可以创建一个额外的访问器,如:

class User extends Eloquent {

    protected $appends = array('my_date');

    public function setMyDateAttribute($value)
    {
         return $this->attributes['my_date'] = $value;
    }

    public function getMyDateAttribute($value)
    {
        return date('Y-m-d', strtotime($this->attributes['created_at']) );
    }

}

然后像用户->我的约会一样使用它

您可以创建其他访问器,如:

class User extends Eloquent {

    protected $appends = array('my_date');

    public function setMyDateAttribute($value)
    {
         return $this->attributes['my_date'] = $value;
    }

    public function getMyDateAttribute($value)
    {
        return date('Y-m-d', strtotime($this->attributes['created_at']) );
    }

}

然后像用户->我的约会一样使用它

但是当像返回User::all这样执行时,是否返回格式化的日期?请参阅我修改的答案。我用实际的代码试过了,效果很好。请注意,您必须将该列添加到$appends属性中。请参阅底部的文档:同时,我用相同的结果更新了我的问题。但这样做时是否返回格式化的日期,如返回User::all?请参阅我修改的答案。我用实际的代码试过了,效果很好。请注意,您必须将该列添加到$appends属性中。请参阅底部的文档:与此同时,我用相同的发现更新了我的问题。