web-dev-qa-db-fra.com

Vérifiez si la demande est GET ou POST

Dans mon contrôleur/action:

if(!empty($_POST))
{
    if(Auth::attempt(Input::get('data')))
    {
        return Redirect::intended();
    }
    else
    {
        Session::flash('error_message','');
    }
}

Existe-t-il une méthode dans Laravel pour vérifier si la demande est POST ou GET?

34
JoeLoco

Bien sûr, il existe une méthode pour trouver le type de la demande, Mais à la place, vous devez définir une route qui gère POST requêtes, vous n'avez donc pas besoin d'une instruction conditionnelle.

routes.php

Route::post('url', YourController@yourPostMethod);

à l'intérieur de vous contrôleur/action

if(Auth::attempt(Input::get('data')))
{
   return Redirect::intended();
}
//You don't need else since you return.
Session::flash('error_message','');

Il en va de même pour la demande GET.

Route::get('url', YourController@yourGetMethod);
7

Selon Laravels docs , il existe une méthode Request pour le vérifier, vous pouvez donc simplement faire:

$method = Request::method();

ou

if (Request::isMethod('post'))
{
// 
}
150
Tom

Les solutions ci-dessus sont obsolètes.

Selon documentation Laravel :

$method = $request->method();

if ($request->isMethod('post')) {
    //
}
47
hubrik

Utilisez Request::getMethod() pour obtenir la méthode utilisée pour la requête actuelle, mais cela devrait rarement être nécessaire car Laravel appellerait la bonne méthode de votre contrôleur, selon le type de requête (ie getFoo() pour GET et postFoo() pour POST).

6
Marcin Orlowski

$_SERVER['REQUEST_METHOD'] est utilisé pour cela.

Il renvoie l'un des éléments suivants:

  • 'OBTENIR'
  • 'TÊTE'
  • 'POSTER'
  • 'METTRE'