2014-09-20 8 views

Antwort

23

Was Sie brauchen, ist ein DB::raw Ausdruck:

DB::table('users') 
    ->where('username', '=', DB::raw('lastname')) 
    ->get(); 

Das einzige, was DB::raw tatsächlich tut, ist die Abfrage-Interpreter zu sagen nicht 'lastname' wie jeder andere String-Wert zu behandeln, sondern nur interpolieren es in der SQL wie es ist.

http://laravel.com/docs/queries#raw-expressions

1

In Laravel 5, gibt es nowwhereColumn dafür, für sauberere Code:

Users::whereColumn('username', 'lastname')->get(); 
+0

dies seit Laravel nur verfügbar ist 5.2, nicht in 5.1LTS zum Beispiel. nicht sicher, warum @ceejayoz meine Bearbeitung abgelehnt hat. Die Antwort ist nicht korrekt, da diese Funktionalität nicht in "Laravel 5" verfügbar ist. – rrrafalsz

+0

@rrrafalsz 'whereColumn' ist in allen derzeit unterstützten Laravel-Versionen enthalten. Die Unterstützung von 5.1 lief im Juni 2017 aus. – ceejayoz

Verwandte Themen