php - Laravel eager 查询返回一个空列表

标签 php mysql laravel eloquent

我需要使用急切查询在 Laravel 中执行子查询,但结果始终为空。

查询:

$project = Log::where('project_id', $id)->with(['log_occurences'=> function($query){
        $query
        ->selectRaw('date(created_at) as created, count(log_id) as count')
        ->groupBy('created');
    }])

结果:

[
 {
    "id": 1,
    "title": "Haskell\\Lorna\\Moore",
    "level": "WARNING",
    "stage": "production@wenders-macbook-pro",
    "created_at": "2019-04-29 13:18:13",
    "updated_at": "2019-05-06 20:24:32",
    "log_occurences": [] <-- empty array
 },
 ...
]

我很困惑,因为我尝试了更简单的查询,例如不使用聚合并且有效。

最佳答案

请记住,$query->selectRaw() 中需要主键(在本例中为 id)才能实际检索必要的结果。*

$project = Log::where('project_id', $id)->with(['log_occurences'=>function($query){
    $query
    ->selectRaw('date(created_at) as created, count(log_id) as count,log_id')
    ->groupBy('created');
}])->get();

关于php - Laravel eager 查询返回一个空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56077969/

相关文章:

php - Laravel 4 : how to "order by" using Eloquent ORM

Laravel Sum 一个包含多个项目的集合

javascript - 使用 jQuery + PHP 处理表单时出现问题

php - 处理 php 中的空循环

php - Zend_Search_Lucene查询解析问题

php - Laravel 哪里 Carbon addMinutes 不起作用

mysql - laravel 5 Eloquent 左连接

php - 使用 php codeigniter 显示来自 mysql 数据库的数据时出错

php - 如何根据 "where"条件使用外键自动完成显示另一个表中的数据

php - UTF8数据库查询及特殊字符