Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel :imbrication des résultats de jointure de requête dans un sous-tableau

Ne pensez pas que c'est faisable hors de la boîte sans Eloquent.

Vous pouvez suivre la route primitive :

$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']);
}