2017-03-21 8 views

Antwort

2

WhereRaw: Manchmal müssen Sie möglicherweise einen unformatierten Ausdruck in einer Abfrage verwenden. Diese Ausdrücke werden als Strings in die Abfrage eingefügt.

Wenn Sie nicht in der Lage sind, die Abfrage, die Sie über das Fluent Interface zum Erstellen, fühlen Sie sich frei zu verwenden whereRaw:

Ex:

$users = User::whereRaw('age > ? and votes = 100', array(25))->get(); 

Reference

+0

ohh ok danke für Ihre Antwort. –

7

WhereRaw() eine Funktion der Laravel Abfrage Builder, der Ihre Eingabe wie in der Where-Klausel der SQL-Abfrage platziert.

Denken Sie daran, wie die where()-Funktion, deren Eingabe-Argument wird nicht vor dem Einfügen in Abfragen verarbeitet werden.

Siehe nachstehendes Beispiel:

$Query = DB::table('some_table')->where('YEAR(date)', 'YEAR(CURRENT_DATE)'); 

In diesem Laravel Ihre Argumente aufbauen, um eine Abfrage lösen. Die in der folgenden Abfrage führen wird, weil Sie Ihre Eingabe als eine field und seine seine value behandelt werden:

SELECT * FROM `some_table` WHERE `YEAR(date)` = `YEAR(CURRENT_DATE)` 

was nicht erwünscht ist.

Und jetzt, wenn Sie verwenden whereRaw wie:

$Query = DB::table('some_table')->whereRaw('YEAR(date) = YEAR(CURRENT_DATE)'); 

Jetzt Laravel setzen diese where-Klausel, wie sie in der Abfrage ist, wie unten:

SELECT * FROM `some_table` WHERE YEAR(date) = YEAR(CURRENT_DATE) 

Hoffe, es half (:

+0

@ dparoli Vielen Dank für die Bearbeitung von Vorschlägen. –

+0

Dies ist eine gute Antwort mit klaren Beispielen – dparoli

+0

ohh ok danke für Ihre Antwort. –