Laravel Request :: all () sollte nicht statisch aufgerufen werden
In Laravel, ich bin versucht zu rufen $input = Request::all();
auf eine store()
Methode in meinem controller, aber ich bin immer der folgende Fehler:
Nicht-statische Methode
Illuminate\Http\Request::all()
sollte nicht aufgerufen werden statisch, vorausgesetzt$this
aus unvereinbar Kontext
Jede Hilfe herauszufinden, der beste Weg, um dies zu korrigieren? (Ich bin nach einer Laracast)
InformationsquelleAutor der Frage Moose | 2015-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird die Fehlermeldung durch den Aufruf nicht durch den
Request
Fassade.Ändern
Zu
und es sollte anfangen zu arbeiten.
In der config/app.php die Datei finden Sie eine Liste der Klasse-Aliase. Dort werden Sie sehen, dass die Basis-Klasse
Request
wurde als alias für denIlluminate\Support\Facades\Request
Klasse. Weil dieses, die Verwendung derRequest
Fassade in einem Namespace-Datei, müssen Sie die Verwendung der base class:use Request;
.Bearbeiten
Da diese Frage scheint für einige traffic, wollte ich aktualisieren die Antwort ein wenig, da Laravel 5 wurde offiziell freigegeben.
Während die oben ist immer noch technisch korrekt und arbeiten, die
use Illuminate\Http\Request;
- Anweisung ist in der neuen Controller-Vorlage zu helfen, schieben die Entwickler in die Richtung der Verwendung von dependency-injection versus Vertrauen auf die Fassade.Beim Einspritzen das Request-Objekt in den Konstruktor (oder die Methoden, wie in Laravel 5), es ist die
Illuminate\Http\Request
Objekt, das eingefügt werden soll, und nicht dieRequest
Fassade.So, anstelle der änderung der Controller-Vorlage zu arbeiten, mit der Aufforderung, die Fassade, ist es besser, empfohlen für die Arbeit mit der angegebenen Controller-Vorlage und verschieben Sie in Richtung der Verwendung von dependency injection (via Konstruktor oder Methoden).
Beispiel über Methode
Beispiel über den Konstruktor
InformationsquelleAutor der Antwort patricus
Spritzen Sie das Anfrage-Objekt in den controller mit Hilfe von Laravel die Magie der Injektion und dann access die Funktion nicht statisch. Laravel automatisch injizieren konkreten Abhängigkeiten in Klassen geladen
InformationsquelleAutor der Antwort Jonathan Crowe
ist im gleichen Kontext zu sagen
InformationsquelleAutor der Antwort Ravi G
verwenden Sie die
request()
Helfer statt. Sie müssen nicht sorgen zu machen über dieuse
Aussagen und damit diese Art von problem wird nicht wieder passieren.einfach
InformationsquelleAutor der Antwort lucidlogic
Die Fassade ist eine weitere Anforderung Klasse, Zugang mit dem vollständigen Pfad:
InformationsquelleAutor der Antwort Luca C.