Laravel: ändere eine rohe Abfrage in einem "Query Builder" oder "eloquenten"

Ich habe dieses Laravel Query Builder-Snippet, das einwandfrei funktioniert:

$records = DB::table('users')
    ->select(
        DB::raw('users.*, activations.id AS activation, 
                 (SELECT roles.name FROM roles 
                  INNER JOIN role_users 
                    ON roles.id = role_users.role_id
                  WHERE users.id = role_users.user_id LIMIT 1) 
                  AS role')
    )
    ->leftJoin('activations', 'users.id', '=', 'activations.user_id')
    ->where('users.id', '<>', 1)
    ->orderBy('last_name')
    ->orderBy('first_name')
    ->paginate(10);

Gibt es eine Möglichkeit, die Verwendung von unformatierten Abfragen zu vermeiden und dasselbe Ergebnis zu erzielen? Mit anderen Worten, wie kann ich dies in einem "Query-Builder" -Stil schreiben? Kann ich das auch in eine eloquente Abfrage übersetzen?

Vielen Dan

Antworten auf die Frage(2)

Ihre Antwort auf die Frage