Я не проверял это точный код, но я что-то подобное, и она работала:
Route::any('auth/{action}', function($action){
$controller = new UserController();
$controller->$action();
});
Вы могли бы найти, вы также должны обрабатывать параметры, например:
Route::any('auth/{action}/{param}', function($action, $param){
$controller = new UserController();
$controller->$action($param);
});
вы может даже настроить его, чтобы охватить все ваши контроллеры:
Route::any('{controller}/{action?}/{param?}', function($controller,$action='index',$param=null)
{
$controller = str_replace(' ', '', ucwords(str_replace('-', ' ', $controller))).'Controller';
$controller = new $controller;
$action = lcfirst(str_replace(' ', '', ucwords(str_replace('-', ' ', $action))));
return $controller->$action($param);
});
Если вы хотите иметь индексное действие wi й параметр, который не сработает, но в противном случае он работает достаточно хорошо. Он также не будет обрабатывать второй параметр, если вы хотите это сделать.
Много способов расширить эту идею.
Ответ Джейсона более правильный (соответствует документам, более чистому коду и т. Д.), Но если вы не хотите думать о методах HTTP или хотите получить мастер-маршрут для обработки почти каждого запроса, это опция.
ОК, который работает очень хорошо, за исключением того, что я не могу использовать параметры в URL-адресах. Какова ваша рекомендация? Насколько я знаю, это очень важно в REST API, чтобы иметь возможность называть что-то вроде/api/item/1 или прочее. OK Я предполагаю, что в этом случае я должен использовать Route :: resource. Правильно ли я или должен использовать контроллер Route :: и каким-то образом передавать параметры? –