tp5路由判断的问题

新手上路,请多包涵

网站的链接类似这样 xxx.com/wuhan xxx.com/beijing xxx.com/hangzhou
有200多个城市,路由Route::get(':city$','index/index')->pattern(['city' => '[a-z\/]+'])
然后再控制器里判断参数是不是城市

        $city=Request::param('city');

        $citys=[所有城市数组];
        
        if(array_key_exists($city,$citys)){
        
           ////todo
        }

这样设置好了路由 就相当于把域名后面的数据都当作city参数了,导致其它控制器必须得一个一个写路由了,请问有没有什么好办法在路由器里判断呢

阅读 2.1k
2 个回答

放到路由定义的最下面,当其他路由不匹配时再来匹配此路由。

如果你的其他路由都是隐式路由,那就需要在 中间件 里面处理转发。

在中间件判断就行啦,不符合的话直接抛出异常或者重定向

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进