Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Laravel:Aninhando resultados de junção de consulta em uma sub-matriz


Não pense que é factível fora da caixa sem o Eloquent.

Você pode seguir a rota primitiva:
$results = DB:table('posts')
    ->leftJoin('comments', 'posts.id', '=', 'comments.post_id')
    ->select('posts.*', 'comments.*', 'comments.id as comments_id')
    ->get(); 

foreach($results as &$result) 
{ 
    $result['comment'] = [
        'id' => $result['comment_id'], 
        'comment' => $result['comment'], 
        'comment_author' => $result['comment_author']
    ]; 
    unset($result['comment_author'], $result['comment_id']);
}