it-swarm.com.de

so erhalten Sie alle Eingaben von POST in Laravel 5

Ich verwende Laravel 5 und versuche alle Eingaben der Variablen POST im Controller wie folgt zu erhalten

public function add_question()
{
    return Request::all();
}

Also ich bekomme diese Fehler-

 enter image description here

Was mache ich falsch?

27
Abrar Jahin

Versuche dies :

use Illuminate\Support\Facades\Request;
public function add_question(Request $request)
{
    return $request->all();
}

Bei fast allen aktuellen Antworten scheint es einen großen Fehler zu geben, indem sie SOWOHL GET- als auch POST -Daten anzeigen. Nicht nur POST - Daten. 

Das Problem mit Ihrem Code als akzeptierter Antwort ist, dass Sie die Fassade nicht importiert haben. Dies kann importiert werden, indem Sie oben Folgendes hinzufügen:

use Request;

public function add_question(Request $request)
{
    return Request::post();
}

Sie können auch die globale Anforderungsmethode (wie von @Canaan Etai erwähnt) verwenden, ohne dass ein Import erforderlich ist:

request()->post();

Ein besserer Ansatz zum Importieren von Request in einer Controller-Methode ist jedoch die Abhängigkeitseinspritzung, wie in @shuvrow Antwort erwähnt:

use Illuminate\Http\Request;

public function add_question(Request $request)
{
    return $request->post();
}

Weitere Informationen zu DI finden Sie hier:

In beiden Fällen sollten Sie Folgendes verwenden:

// Show only POST data
$request->post(); // DI
request()->post(); // global method
Request::post(); // facade

// Show only GET data
$request->query(); // DI
request()->query(); // global method
Request::query(); // facade

// Show all data (i.e. both GET and POST data)
$request->all(); // DI
request()->all(); // global method
Request::all(); // facade
17
Yahya Uddin

Sie sollten die Fassade anstelle von Illuminate\Http\Request verwenden. Importiere es oben:

use Request;

Und stellen Sie sicher, dass es nicht mit der anderen Klasse in Konflikt steht.

Edit: Diese Antwort wurde vor einigen Jahren geschrieben. Ich befürworte jetzt die von shuvrow vorgeschlagene Vorgehensweise.

5
Joel Hinz

Nur für diejenigen, die hierher gesucht haben, um zu erfahren, "wie man alle Eingaben von POST erhält"

die Klasse Illuminate\Http\Request geht von Symfony\Component\HttpFoundation\Request aus, die zwei Klassenvariablen enthält, die Anforderungsparameter speichern.

public $query - für GET-Parameter

public $request - für die Parameter POST

Verwendung: Um nur die Postdaten zu erhalten

$request = Request::instance();
$request->request->get('my_param');

Quelle hier

4

Es sollte mindestens so sein:

public function login(Request $loginCredentials){
     $data = $loginCredentials->all();
     return $data['username'];
}
0
Charmie

Du kannst es benutzen 

$params = request()->all();

ohne

import Illuminate\Http\Request OR 

use Illuminate\Support\Facades\Request OR anderes.

0
Rafael Mendes

Sie können alle Postdaten in diese Funktion bekommen: -

$postData = $request->post();

und wenn Sie ein bestimmtes Feld haben möchten, verwenden Sie es: -

$request->post('current-password');
0
nageen nayak