mysql - Laravel 获得 HitTest 门预订酒店数量

标签 mysql laravel

有一个酒店预订应用程序,我需要获取 4 家预订最多的酒店。

我与Reservation.php中的酒店有关系

public function hotel(){
        return $this->belongsTo('App\Hotel');
    }

我可以通过以下查询实现我想要的:

Reservation::select(DB::raw('*, COUNT(hotel_id) as hotel_count'))->with('hotel')->groupby('hotel_id')->orderby('hotel_count', 'desc')->limit(4)->get();

是否有任何简化版本可用于上述查询?

更新:数据库结构

enter image description here

最佳答案

Reservation::withCount('hotel')->orderBy('hotel_count', 'desc')->take(4)->get();

看看https://laravel.com/docs/5.6/eloquent-relationships#counting-related-models

关于mysql - Laravel 获得 HitTest 门预订酒店数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49999735/

相关文章:

MySQL 5.7 和 SELECT DISTINCT JSON 属性

jquery - 创建数据驱动的 html 网页

excel - 如何在maatwebsite中获取excel数组

css - 使用 laravel 默认加载 Bootstrap

javascript - 使用ajax调用更新数据库onclick

php - 将动态字段数据插入数据库问题?

mysql - 如何在订购前添加数字到时间(MySQL)

mysql - 时间差按 2 个不同参数分组

php - 美化代码结构的方法是什么? (拉拉维尔)

php - Laravel 填充选项值