如何在Laravel中实现数组类型路由?

2022-08-30 22:16:08

我正在尝试在Laravel 5.8中实现数组类型路由。
以下是我尝试过的方法:

Route::get('/','/myroute', 'MyController@index');
Route::get(['/','/myroute'], 'MyController@index');
Route::get([('/','/myroute')], 'MyController@index');
Route::get('/' || '/myroute', 'MyController@index');  

基本上,我试图做的是创建一个具有“OR”条件的路由。
假设我想使用 mydomain.dev/mydomain.dev/myroute 访问 MyController,但我得到了 404|未找到index

试图阅读Laravel文档,但我找不到指向我想要做的事情的东西。


答案 1

下面是您要实现的示例。

Route::get('/{param?}', 'MyController@index')
    ->where('param', '(myroute|myroute2)');

通过上述路由,您可以为相同的控制器功能创建以下URL

www.site.com/
www.site.com/myroute
www.site.com/myroute2

试试这个,我认为这会帮助你。


答案 2
Route::get('/{myroute?}', function () {
    echo 'test';
})
    ->where('myroute', '(myroute|mysecondroute)');

这是一个示例。您在路由中定义了一个变量,该变量可以采用您在 where clase 中的值

这意味着端点

api/myroute 
api/
api/mysecondroute

将访问相同的路由并详细阐述相同的控制器


推荐