我创建了以下原始查询,以便对我网站中的帖子进行排名。
$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);
我现在面临的唯一问题是,通过使用原始查询,我无法再访问 Eloquent orm 关系,因此在我的 Blade 中我无法再使用 post->user...
这有点糟糕,这意味着我必须重写我的一些 Blade 。
想问是否有人知道解决这个问题的魔法,而不是两次编写我的代码..:(
最佳答案
我自己找到了答案:)
$posts = Post::selectRaw('*, (score / (NOW() - posts.created_at)) as `ordering_value`')
->orderBy('ordering_value', 'DESC')
->orderBy('created_at', 'DESC')->paginate(9);
关于php - Laravel 原始查询和 Eloquent ORM 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416664/