J'utilise Laravel 5 et j'essaie d'obtenir toutes les entrées de la variable POST dans le contrôleur comme ceci-
public function add_question()
{
return Request::all();
}
Donc, je reçois ces erreurs-
Qu'est ce que je fais mal?
Essaye ça :
use Illuminate\Support\Facades\Request;
public function add_question(Request $request)
{
return $request->all();
}
Il semble y avoir une erreur majeure dans presque toutes les réponses actuelles en ce sens qu'elles affichent les données LES GET et POST. Pas les données SEULEMENT _ POST.
Le problème avec votre code en tant que réponse acceptée mentionnée est que vous n'avez pas importé la façade. Cela peut être importé en ajoutant ce qui suit en haut:
use Request;
public function add_question(Request $request)
{
return Request::post();
}
Vous pouvez également utiliser la méthode de requête globale comme suit (mentionnée par @Canaan Etai), sans aucune importation requise:
request()->post();
Cependant, une meilleure approche pour importer Request
dans une méthode de contrôleur consiste à injecter une dépendance, comme indiqué dans la réponse @shuvrow:
use Illuminate\Http\Request;
public function add_question(Request $request)
{
return $request->post();
}
Plus d'informations sur DI peuvent être trouvées ici:
Dans les deux cas, vous devez utiliser:
// 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
Vous devriez utiliser la façade plutôt que Illuminate\Http\Request
. Importez-le en haut:
use Request;
Et assurez-vous que cela n'entre pas en conflit avec l'autre classe.
Edit: Cette réponse a été écrite il y a quelques années. Je privilégie maintenant l'approche proposée par Shuvrow ci-dessous.
Pour ceux qui sont venus ici à la recherche de "comment obtenir toutes les entrées de POST" uniquement
la classe Illuminate\Http\Request
s'étend de Symfony\Component\HttpFoundation\Request
qui a deux variables de classe qui stockent les paramètres de requête.
public $query
- pour les paramètres GET
public $request
- pour les paramètres POST
Utilisation: Pour obtenir une donnée de poste seulement
$request = Request::instance();
$request->request->get('my_param');
Source ici
Tu peux l'utiliser
$params = request()->all();
sans pour autant
import Illuminate\Http\Request
OR
use Illuminate\Support\Facades\Request
OR autre.
Vous pouvez obtenir toutes les données de publication dans cette fonction: -
$postData = $request->post();
et si vous voulez un fichier spécifique, utilisez-le: -
$request->post('current-password');