为什么我不能在 Laravel Eloquent 数据透视表中使用 ORDER BY?

廷加文

posts在主页上整理我的表格,只显示我精心挑选的帖子。

当我为主页选择一个帖子时,它的 ID 进入一个posts_homepage表格,它基本上是一个数据透视表。我从中选择帖子的 id ( post_id) posts_homepage,然后从posts表中获取帖子

这工作得很好,但是,现在我想将它们放在一个特定的顺序,所以我增加了一个order_by领域posts_homepage我很难弄清楚如何按照我想要的顺序获得结果,没有任何效果;我只是按照默认顺序获取它们。

TABLE posts_homepage
post_id    INT 10 UNSIGNED
order_by INT 10 UNSIGNED

当前查询...

$posts = Post::latest('published_at')
    ->whereHas('user', function ($query) {
        $query->where('verified', 1);
    })
    ->whereRaw("posts.id IN (SELECT post_id FROM posts_homepage)")
    ->whereRaw("posts.status = 'published'")
    ->paginate(30);

我试过删除latest('published_at')和插入->orderByRaw('ORDER BY posts_homepage.order_by ASC'),但这并没有什么不同,否则我会收到一条错误消息Unknown column 'posts_homepage.order_by' in 'order clause'

我也尝试过,->whereRaw("posts.id IN (SELECT post_id FROM posts_homepage ORDER BY order_by ASC)")但这也不起作用。我也尝试了其他一些选项,但无法根据order_by字段返回它们

有什么建议么?

莫扎米尔

如果我错了,请纠正我,但简单的 join 不能在这里工作吗?例如:

$posts = Post::select('posts.*')
    ->whereHas('user', function ($query) {
        $query->where('verified', 1);
    })
    ->join('posts_homepage', 'posts.id', 'posts_homepage.post_id')
    ->where('posts.status', 'published')
    ->orderBy('posts_homepage.order_by', 'ASC')
    ->paginate(30); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在Laravel中使用关系方法?

为什么我不能在我的 Eloquent 代码中使用 latest()?

Laravel Eloquent - 数据透视表

我如何使用Eloquent&Laravel 5查询多态数据透视表

如何在Laravel 5中使用Eloquent更新数据透视表

Laravel 5:为什么我不能在语言文件中使用整数和浮点数?

为什么我不能在Laravel $ request-> input('key')中使用isset()

Laravel 7 - 为什么我不能在不同的路由组中使用相同的路由?

Laravel / Eloquent:数据透视表上的条件

Laravel Eloquent-查询数据透视表

为什么我的cookie不能在Laravel中保留(使用Homestead,Vagrant)?

为什么我的Laravel脚本不能在发送邮件时使用变量

不能在 Laravel 控制器上使用 eloquent ::query()

如何在laravel中使用附加字段更新我的数据透视表

Laravel Eloquent 仅在需要时使用 where 和 order 条件

如何在 Laravel eloquent 中查询数据透视表的计数

Laravel Eloquent 获取与数据透视表中的值匹配的关系

Laravel Eloquent 如何为数据透视表选择使用条件“where”

Laravel 5:如何使用Eloquent在数据透视表上进行联接查询?

如何使用多个外键查询数据透视表Laravel 5 Eloquent

在Laravel Eloquent中使用桥表关系

为什么我不能在我的代码中使用“ balance ”?

为什么我不能在 Laravel 中创建索引?

为什么我不能同时使用 ORDER BY 和 GROUP BY

Laravel Eloquent-使用数据透视表的ID作为另一个表中的外键

为什么我不能在开关案例中使用枚举?

为什么我不能在Swift中使用'object == nil'?

为什么我不能在CSS Variable中使用rgba?

为什么我不能在界面中使用默认方法?