2

在决定迁移到 php 框架后,我刚刚选择了 laravel。我正在使用 eloquent 查询从数据库中检索文章的结果集:

$posts = Article::select(array('articles.id','articles.article_date','articles.image_link','articles.headline','articles.category', 'articles.published'));

这工作正常,结果按预期出现。

但是,我现在想将文章日期的格式从 mysql 日期格式更改为整个集合的另一种格式。

我考虑过遍历对象并使用通常的 php 方法进行更改,但想知道是否有更简单的方法来操作数据,无论是在启动查询时还是与对象本身一起使用。

我看过突变体?但不确定这是否合适或如何实施

任何帮助,指针表示赞赏

4

2 回答 2

4

你是对的,变异器是要走的路。(Laravel 3 语法)

Eloquent 模型的 Getter 和 Setter 文档

public function get_article_date()
{
    return date('d-m-Y H:i:s', strtotime($this->get_attribute('article_date'));
}

获取属性

$articles = Articles::get(array(
    'article_date', 
    'image_link', 
    'headline', 
    'published'
));

foreach($articles as $article)
{
    echo $article->article_date;
}

每次从模型中获取日期时,它都会首先通过 mutator 运行,返回修改后的结果。

绝对不需要为这样的事情运行原始查询。

编辑设置并混淆......需要更多咖啡(答案已编辑)

于 2013-05-24T08:42:02.327 回答
1

我不确定这是否有效,但试一试

$posts = Article::select(array('articles.id',DB::raw('CAST(articles.article_date as date)'),'articles.image_link','articles.headline','articles.category', 'articles.published'));
于 2013-05-24T08:29:43.470 回答