Проверьте, является ли запрос GET или POST

в мой контроллер/действие:

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

есть ли способ в Laravel чтобы проверить, является ли запрос POST или GET?

5 ответов


конечно, есть метод, чтобы узнать тип запроса,но вместо этого вы должны определить маршрут обработки POST запросов, таким образом, вам не нужен условный оператор.

маршруты.в PHP

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

внутри вас контроллер/действие

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

то же самое GET запрос.

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

по данным Laravels docs есть метод запроса, чтобы проверить его, так что вы могли бы просто сделать:

$method = Request::method();

или

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

приведенные выше решения устарели.

по состоянию на документация фреймворк Laravel:

$method = $request->method();

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

использовать Request::getMethod() чтобы получить метод, используемый для текущего запроса, но это редко нужно, поскольку Laravel будет вызывать правильный метод вашего контроллера, в зависимости от типа запроса (т. е. getFoo() для GET и postFoo() для поста).


$_SERVER['REQUEST_METHOD'] используется для этого.

он возвращает одно из следующих значений:

  • 'GET'
  • 'голова'
  • 'POST'
  • 'PUT'