php - Laravel 原始查询和 Eloquent ORM 关系

标签 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);

我现在面临的唯一问题是,通过使用原始查询,我无法再访问 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/

相关文章:

php - 调用非对象上的成员函数bind_param()

php - 交响乐 : multiple applications in one test

php - TinyMVC PDO 层在数据库查询时引发错误

MySQL 错误 1064 - 'Define Function' 语法

Laravel Faker 如何获取用户名的最小和最大长度

php - MySQL中不重复记录的随机数据列表

java - Hibernate返回 "weird"连接

mysql根据条件限制比较中的行数

php - 如何在 Laravel 中运行 Python 脚本?

php - 如何让 PHP 等到为打印创建 PDF?