在我的控制器/动作中:
if(!empty($_POST))
{
if(Auth::attempt(Input::get('data')))
{
return Redirect::intended();
}
else
{
Session::flash('error_message','');
}
}
Laravel
中是否有方法可以检查请求是POST
还是GET
?
答案 0 :(得分:142)
根据Laravels docs,有一种Request方法可以检查它,所以你可以这样做:
$method = Request::method();
或
if (Request::isMethod('post'))
{
//
}
答案 1 :(得分:43)
The solutions above are outdated.
As per Laravel documentation:
$method = $request->method();
if ($request->isMethod('post')) {
//
}
答案 2 :(得分:11)
我已经在laravel版本中解决了如下问题:7 +
**In routes/web.php:**
Route::post('url', YourController@yourMethod);
**In app/Http/Controllers:**
public function yourMethod(Request $request) {
switch ($request->method()) {
case 'POST':
// do anything in 'post request';
break;
case 'GET':
// do anything in 'get request';
break;
default:
// invalid request
break;
}
}
答案 3 :(得分:7)
当然有一种方法可以找出请求的类型,But而不是你应该定义一个处理POST
请求的路由,因此你不需要需要条件陈述。
routes.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);
答案 4 :(得分:6)
使用Request::getMethod()
来获取当前请求所使用的方法,但这很少需要,因为Laravel会调用控制器的正确方法,具体取决于请求类型(即getFoo()
用于GET和{{ 1}}用于POST)。
答案 5 :(得分:5)
$_SERVER['REQUEST_METHOD']
用于此目的。
它返回以下之一: