我可以在Laravel的控制器中为get和post方法使用相同的名称吗

时间:2019-04-13 15:57:38

标签: php laravel

在laravel中的控制器中,是否可以对get和post方法使用相同的名称?

//in route 
Route::get('form','OrderController@formOrder');
Route::post('form','OrderController@formOrder');

// in controller
[get]
public function formOrder()
{
   //do something
}

[post]
public function formOrder()
{
   //do something else
}

类似的东西。

2 个答案:

答案 0 :(得分:0)

public function formOrder(Request $request)
{
   if($request->isMethod('post')){
         //post data
   }

   if($request->isMethod('get')){
        //get data
   }
}
public function formOrder(Request $request)
{
   $method = $request->method();
   if($method == 'post'){
         //post data
   }

   if($method == 'get'){
        //get data
   }
}

您也可以选择一条路线

Route::match(['get', 'post'], 'form','OrderController@formOrder');

答案 1 :(得分:0)

不,由于模棱两可,您不能在控制器中使用相同的函数名称。 当url请求到达web.php时,控制器将调用路由动作参数中给出的函数名称的首次出现,该名称可能不是用户所需的预期功能。