我如何使用碳输出created_at人类可读的查询,比如Facebook的1 min ago在它的帖子上。问题是,我总是将查询结果直接返回到浏览器中输出。我如何集成它,而不是2015-07-01 12:32:43,它将是1 min ago或其他人类可读性和良好的。
在我的控制器里:
$posts = DB::table('posts')
->where('author_id', '=', $id)
->where('created_at', '<', $date)
->orderBy('created_at', 'desc')
->paginate(10);
return $posts;然后,它将返回所有帖子的json格式。
发布于 2015-01-07 09:34:52
我建议您使用一个雄辩的模型及其附带的特性:
class Post extends Eloquent {
protected $appends = array('created_at_for_humans');
public function getCreatedAtForHumansAttribute(){
return Carbon::parse($this->attributes['created_at'])->diffForHumans();
}
}这个属性存取器返回格式化日期,因为它是在$appends中注册的,因此属性将包含在数组/JSON转换中。
您的查询看起来几乎是一样的:
$posts = Post::where('author_id', '=', $id)
->where('created_at', '<', $date)
->orderBy('created_at', 'desc')
->paginate(10);发布于 2015-01-07 04:56:00
尝试:
foreach ($posts as &$post) {
$post->created_at = Carbon::parse($post->created_at)->diffForHumans();
}在return之前
https://stackoverflow.com/questions/27812450
复制相似问题