2015-09-22 5 views
14

Używam laravel 5 i stara się uzyskać wszystkie wejścia zmiennej POST w sterowniku jak to-jak dostać wszystko wejście odpowiedzieć w laravel 5

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

Tak, jestem coraz to errors-

enter image description here

Co robię źle?

+0

Na czym polega problem? – Cyrbil

+0

Niestatyczna metoda Iluminacja \ Http \ Request :: all() nie powinna być wywoływana statycznie, przyjmując $ this z niezgodnego kontekstu –

Odpowiedz

4

Powinieneś używać elewacji zamiast Illuminate\Http\Request. Zaimportuj go na górze:

use Request; 

Upewnij się, że nie powoduje konfliktu z innymi klasami.

+5

Zły! Zwróci także zmienne GET. – barbushin

+1

@barbushin Pytanie brzmiało, jak pobrać zmienne POST. Nigdy nie powiedziałem, że nie pobiera również zmiennych GET. Prosimy o przeczytanie przed komentarzem i nie bądź osłem. –

+1

Jeśli będzie to żądanie GET, to 'return Request :: all(); zwróci zmienne GET. – barbushin

17

Spróbuj tego:

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

Wrong! Zwróci także zmienne GET. – barbushin

+2

@barbushin, Jeśli wszystkie tutaj odpowiedzi są błędne, podaj tutaj POPRAWNE odpowiedzi. –

0

jej lepiej wykorzystywać zależność niż attache go do klasy.

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

lub jeśli wolisz za pomocą zmiennej wejściowej korzystanie

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

można teraz korzystać z globalnej metody żądania dostarczonego przez laravel

request() 

na przykład, aby uzyskać first_name z wejściem formularza .

request()->first_name 
// or 
request('first_name') 
2

Dla tych, którzy przybyli tu w poszukiwaniu „jak dostać wszystko wejście POST” tylko

klasy Illuminate\Http\Request rozciąga się od Symfony\Component\HttpFoundation\Request który ma dwie zmienne klasowe, które przechowują parametry żądania.

public $query - dla parametrów GET

public $request - dla POST parametry

Zastosowanie: Aby uzyskać dane pocztowe tylko

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

Źródło here

-1

To powinno być co najmniej tak:

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

Można go używać

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

bez

import Illuminate\Http\Request LUB

use Illuminate\Support\Facades\Request lub inny.