Ich versuche, die folgende Abfrage in Eloquent ORM auszuführen und kann nicht scheinen, die MySQL-Funktion auszuführen -
%Vor%Die Ausnahme, die ich bekomme, ist wie folgt - Nachricht:
%Vor% Im Grunde kapselt es die YEAR()
MySQL-Funktion als Spalte. Gibt es eine Möglichkeit, dies ohne Verwendung einer unbearbeiteten Abfrage zu tun?
Wahrscheinlich möchten Sie die Funktion YEAR()
in Ihrer WHERE-Klausel trotzdem nicht verwenden. Dies würde verhindern, dass Sie einen Index für die Spalte created_at
verwenden. Ich würde vorschlagen, dass Sie stattdessen LIKE
verwenden:
Sie können auch reine SQL-Abfragen verwenden (mit query()
method), wenn Sie in Ihren Abfragen nicht unterstützte MySQL-Funktionen verwenden müssen.
Ich benutze Laravel 5.3
%Vor%Dieser Typ hat mir geholfen & gt; & gt; Ссылка
Sie haben zwei Möglichkeiten dies zu tun und es hängt von Ihrer Laravel-Version ab
Verwenden Sie zuerst die Methode Raw , um die Funktion wie im folgenden Beispiel zu übergeben
%Vor% Sie können es auch in (select, group, order) Methoden verwenden, um weitere Informationen zu Raw Laravel Docs
Zweite Verwendung whereYear Methode
%Vor%Diese Methode beginnt ab V 5.3 für weitere Informationen. Abschnitt "Wo lesen" finden Sie alle Methoden für Daten (whereDate / whereMonth / whereDay / WhereYear)