如何排除集合函数中的软删除记录?

By simon at 2018-02-28 • 0人收藏 • 28人看过

我试图获得表order by 评论和全部记录 评论数。我需要包括评论,而不是软德被使用(即deleted_at 字段在reviews表中不为空),这个我通过使用whereNull来完成 条款。此时我走了达到预期的结果;但问题是,当 表有评论,他们都被软删除,记录不显示。

$restaurantBranch = $restaurantBranch->leftJoin('reviews', 'restaurant_branches.id', '=', 'reviews.restaurant_id')
                    ->selectRaw('restaurant_branches.*,count(reviews.rating) as rev_num, avg(reviews.rating) as average_rating')
                    ->whereNUll("reviews.deleted_at")
                    ->orderBy('average_rating', "desc")->orderBy('rev_num', "desc")
                    ->groupBY('restaurant_branches.id');
我如何显示记录?

1 个回复 | 最后更新于 2018-02-28
2018-02-28   #1

当使用软删除时,deleted_at列将被添加到表中。当你 删除记录,它实际上并没有删除,但t他deleted_at时间戳是 组。 默认情况下,当检索记录时,Laravel将只返回没有记录 一套deleted_at值。 尽管如此,可以强制Laravel返回软删除的记录 你需要他们。 这很简单,真的,并在手册中详细描述 [这里](https://laravel.com/docs/5.2/eloquent#soft-deleting)。 从中检索答案 [laracasts](https://laracasts.com/discuss/channels/eloquent/soft-deleting).

登录后方可回帖

Loading...