laravel - 对 "seen" 匹配 2 的结果进行排序
问题描述
我有一个包含字段 id、user_id、file_name、seen (1-2) 的故事表
Stories: id, user_id, file_name, seen
我想创建一个包含所有故事的列表,但其中看到的主要顺序对应于 2(那时仍有待看到)
我有这个简单的查询作为测试,我该怎么办?
$users = App\Models\User::whereHas('stories', function ($query) {
})->get();
解决方案
您可以尝试下一个:
$users = App\Models\User::whereHas('stories')->with(['stories' => function($query) {
$query->orderBy(DB::raw('stories.seen=2'), 'desc')
}])->get();
或者
$users = App\Models\User::whereHas('stories')
->select('*')
->join('stories', 'stories.user_id', '=', 'users.id')
->orderBy(DB::raw('stories.seen=2'), 'desc')
->get();
推荐阅读
- ipython - 如何在 jupyter/ipython notebook 中启用 MathJax Upgreek?
- wordpress - Weglot Translation 无法翻译结帐付款部分
- networking - HLD 网络图创建
- ckeditor - 如何在最后设置光标并在CKEditor内的文本末尾设置焦点?
- c++ - 如何从 txt 文件中获取全文到 C++ 中的字符串变量?我尝试正常,但是当它面对空间时它会终止
- flutter - Future Builder`构建函数返回null`
- javascript - 打开时使用 React useRef() 将焦点应用于 Popover 内的 TextArea
- r - 管道进入`if`返回管道而不评估它
- aws-amplify - 如何将 AWS 配置文件与 Amplify 结合使用?
- bash - 在 bash 中创建一个循环脚本,其中 2 个变量递增,第二个变量根据第一个变量递增