Laravel 使用 join() 查询的查询生成器结果

Laravel Query Builder result using join() query

以下查询工作正常,但问题是它在输出结果中给出了事件的 ID table 而不是任务的 ID table。

Task::join('events', function ($join) {
    $join->on('events.task_id', '=', 'tasks.id')
        ->where('events.event_type', '=', 'Task')
        ->where('events.task_stage', '!=', 'assigned');
})->select('tasks.*')
->get();

试试这个,应该有用

->select('*', 'tasks.id as taskID')->get();

这是因为任务和事件可能 table 都有 id 字段。所以你需要使用单独的查询来指定 id。

试试这个

在此处使用 mysql 别名

Task::join('events', function ($join) {
        $join->on('events.task_id', '=', 'tasks.id')
            ->where('events.event_type', '=', 'Task')
            ->where('events.task_stage', '!=', 'assigned');
 })->select('tasks.*','tasks.id as taskId')->get();