从laravel eloquent操纵结果集

时间:2013-05-24 08:22:12

标签: php laravel eloquent

在决定转移到php框架后,我刚拿起了laravel。我正在使用雄辩的查询从数据库中检索文章的结果集:

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

这样可以正常工作,结果如预期般出现。

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

我想过迭代对象并使用通常的php方法进行更改但是想知道在启动查询时是否有更简单的方法来操作数据,或者是否使用对象本身。

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

任何帮助,指示赞赏

2 个答案:

答案 0 :(得分:4)

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

Getter and Setter documentation for Eloquent models

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;
}

每次从模型中获取日期时,它将首先返回修改后的结果。

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

编辑已经设定并混淆了......需要更多咖啡(回答编辑)

答案 1 :(得分:1)

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

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