如何定义到同一控制器的两条不同路由?

时间:2017-03-27 13:58:16

标签: laravel routes

有没有办法以更清洁的方式定义以下内容?

Route::get('/', 'SiteController@home')->name('home');
Route::get('/home', 'SiteController@home');

推荐的,性能最佳的Laravel方式是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式将多个路由映射到一个控制器。不确定它是否看起来更干净,甚至更好。

$router->get('/{home?}', 'SiteController@home')
       ->where('home', '(home|another_home_route)')
       ->name('home');

这适用于路线:

  • /
  • /家
  • / another_home_route

答案 1 :(得分:0)

Route::get('/{verb?}', 'SiteController@home');

然后处理控制器函数内的逻辑

function home($verb = 'empty') {
    if ($verb == 'home') {
         // do home thing
    } else if ($verb == 'empty') {
        // do empty thing
    }
}

https://laravel.com/docs/5.4/routing部分可选参数