猿问

我该如何解决这个原始查询

我正在尝试使用 laravel db 从我的数据库中获取一些数据并且它抛出错误


$most_purchased_day = (int)Data::select('type')

                      ->whereDate('created_at', '=', date('d'))

                      ->groupBy('type')

                      ->orderByRaw('COUNT(*) DESC')

                      ->first()->network_id;


$most_purchased_day = (int)Data::select('type')

                     ->whereDate('created_at', '=', date('d'))

                     ->groupBy('type')

                     ->orderByRaw('COUNT(*) DESC')

                     ->first()->network_id;

我希望输出是基于网络 ID 购买最多的商品


一只名叫tom的猫
浏览 126回答 1
1回答

慕码人2483693

未检索到第一个用户,因为碳实例created_at不匹配date('d') 更改您的代码以使用today()帮助程序$most_purchased_day = (int)Data::select('type')                      ->whereDate('created_at', '=', today())                      ->groupBy('type')                      ->orderByRaw('COUNT(*) DESC')                      ->first()->network_id;假设今天创建了一个 Eloquent 模型App\Data {     id: 1,     created_at: "2019-09-22 13:15:19",     updated_at: "2019-09-22 13:15:19",   }date('d') 只返回一个整数,即当月 (22) 的天数,不能匹配2019-09-22 13:15:19见PHP:date如果您想获取在任何一天创建的记录,即当天的编号,而不管月份和年份使用whereDay$most_purchased_day = (int)Data::select('type')                      ->whereDay('created_at', '=', date('d'))                      ->groupBy('type')                      ->orderByRaw('COUNT(*) DESC')                      ->first()->network_id;来自Laravel 文档whereDate / whereMonth / whereDay / whereYear / whereTime该whereDay方法可用于将列的值与一个月中的特定日期进行比较:$users = DB::table('users')                ->whereDay('created_at', '31')                ->get();
随时随地看视频慕课网APP
我要回答