laravel - 过滤最喜欢的次数不起作用
问题描述
所有其他功能都可以正常工作,关注和最新,但由于某种原因它不会过滤喜欢。我认为这是 count 方法,但如果我确实喜欢->count() 我最终会遇到太多查询,有什么解决方案吗?
public function index(Request $request) {
$search = request()->input('title');
$posts = Post::query()->latest();
if ($search) {
$posts->where('title', 'LIKE', '%' . request()->title. '%');
} elseif ($request->has('likes')) {
$posts->withCount('likes')->orderByDesc('likes_count');
} elseif ($request->has('latest')) {
$posts->orderByDesc('created_at');
} elseif ($request->has('follow')) {
$posts->whereIn('user_id', $request->user()->following()->pluck('users.id'));
}
return view('welcome', [
'posts' => $posts->withCount(['comments', 'likes'])->paginate(12)
]);
}
Schema::create('likes', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained()->onDelete('cascade');
$table->foreignId('post_id')->constrained()->onDelete('cascade');
$table->timestamps();
});
解决方案
这是问题
$posts = Post::query()->latest();
“->latest()”已经按日期排序。如果你把它拿出来,它应该工作得很好。
推荐阅读
- javascript - 循环中的同步 AJAX 请求得到相同的响应
- excel - .copyfromrecordset 没有响应
- php - 我想知道我的产品表中的产品总数,但它显示错误,正确的语法是什么
- html - 雷鸟 - 从苹果邮件到雷鸟的电子邮件签名是一行
- r - 关于过热包中的ggsave
- bootstrap-4 - 带有下拉菜单的药丸 - 使下拉菜单处于活动状态
- javascript - 在 Reactjs (material-ui) 中交换两个 TextField 的值
- apache-kafka - 如何停止/终止融合的 JDBC 源连接器?
- javascript - Require 没有出现在我的代码中,但是 webpack 不断抛出错误“require is not defined”。
- rust - 理解 rust Option as_mut 方法