Laravel Raw Query和Eloquent ORM关系

时间:2015-02-09 18:23:35

标签: php mysql laravel eloquent

我创建了以下原始查询,以便对我网站中的帖子进行排名..

$posts = DB::table('posts')
->select(DB::raw('*,(score / (NOW() - posts.created_at)) as `ordering_value`'))
->orderBy('ordering_value', 'DESC')
->orderBy('posts.created_at', 'DESC')->join('users', 'users.id', '=', 'posts.user_id->paginate(12);

我现在面临的唯一问题是,通过使用原始查询,我无法再访问雄辩的orm关系,所以在我的刀片中我不能再使用post-gt; user ...

哪种方式很糟糕,这意味着我必须重写一些刀片。

想问一下是否有人知道如何解决这个问题,而不是两次编写我的代码.. :(

1 个答案:

答案 0 :(得分:2)

自己找到答案:)

$posts = Post::selectRaw('*, (score / (NOW() - posts.created_at)) as `ordering_value`')
           ->orderBy('ordering_value', 'DESC')
           ->orderBy('created_at', 'DESC')->paginate(9);