Могу ли я использовать одно и то же имя для метода get и post в контроллере в laravel - PullRequest
1 голос
/ 13 апреля 2019

Возможно ли использовать одно и то же имя для метода get и post в контроллере в laravel?

//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 голосов
/ 13 апреля 2019

Нет, вы не можете использовать одно и то же имя функции в контроллере из-за неоднозначности. Когда URL-запрос приходит в web.php, контроллер вызывает первое вхождение имени функции, которое дается в параметре действия маршрута, который может не быть той функцией, которая нужна пользователю.

0 голосов
/ 13 апреля 2019
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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...