2017-02-21 3 views
0

Kann mir jemand helfen, wie die SQL-Abfrage Larvel konvertieren 5.2SQL-Abfrage in Laravel 5.2 konvertieren?

erste Abfrage (für aktuellen Monat)

SELECT 
    * 
FROM 
    customer_allocations 
WHERE 
    YEAR(date) = YEAR(NOW()) AND MONTH(date) = MONTH(NOW()); 

zweite Abfrage (für aktuelle Woche)

SELECT 
    * 
FROM 
    customer_allocations 
WHERE 
    WEEKOFYEAR(date) = WEEKOFYEAR(NOW()); 

dritte Abfrage (für den aktuellen Tag)

SELECT 
    * 
FROM 
    customer_allocations 
WHERE 
    YEAR(date) = YEAR(NOW()) AND 
    MONTH(date) = MONTH(NOW()) AND 
    DAY(date) = DAY(NOW()); 

Diese SQL-Abfragen werden ausgeführt erfolgreich in phpmyadmin, aber ich möchte in Laravel implementieren kann mir jemand helfen.

ich diese Abfragen zu konvertieren haben versucht, aber ich erhalte eine Fehlermeldung auf dieser Codezeile:

CustomerAllocation::where([YEAR('date'),'=',YEAR(NOW()),MONTH('date'),'=', 
          MONTH(NOW())])->get(); 

Dies ist der Fehler:

Call to undefined function "App\Http\Controllers\YEAR()"

+0

Es sollte 'whereYear' sein,' whereMonth' ... Überprüfen Sie diese [link] (https://laravel.com/api/5.0/Illuminate/Database/Query/Builder.html#method_whereYear) – Thamilan

+0

können Sie konvertieren jede Abfrage in Laravel – kunal

+0

Für Ihr Szenario, denke ich: 'CustomerAllocation :: whereDate ('Datum', '=', Datum ('Ym-d'));' wird tun – Thamilan

Antwort

1

ändern

CustomerAllocation::where([YEAR('date'),'=',YEAR(NOW()),MONTH('date'),'=',MONTH(NOW())])->get() 

bis

CustomerAllocation::whereRaw("YEAR(date) = YEAR(NOW())")->whereRaw("MONTH(date) = MONTH(NOW())")->get() 

Verwenden Sie whereRaw(), wo Sie benutzerdefinierte Bedingungen überprüfen möchten, wie Sie möchten.