Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel Query Builder für rekursive Ergebnisse? Z.B. id, parent_id

Also nachdem ich mit merge() herumgespielt habe Methode für die Collections Klasse:

public static function ancestors($id)
{
    $ancestors = Model::where('id', '=', $id)->get();

    while ($ancestors->last()->parent_id !== null)
    {
      $parent = Model::where('id', '=', $ancestors->last()->parent_id)->get();
      $ancestors = $ancestors->merge($parent);
    }

    return $ancestors;
}

Das wird das produzieren, was ich brauchte, aber ich glaube, es kann sauberer sein, also zögern Sie nicht, es zu bearbeiten!