php – Laravel 5,子域路由,带可选参数
发布时间:2020-12-14 19:48:51 所属栏目:大数据 来源:网络整理
导读:我刚刚开始学习Laravel 5并尝试创建多语言网站,并希望为该语言使用不同的域名,因此en.example.app指向英语版本,es.example.app指向西班牙语等等.我使用路由组,下面是我的代码. Route::group(['domain' = '{domain}.example.app'],function() { Route::get('/
我刚刚开始学习Laravel 5并尝试创建多语言网站,并希望为该语言使用不同的域名,因此en.example.app指向英语版本,es.example.app指向西班牙语等等.我使用路由组,下面是我的代码.
Route::group(['domain' => '{domain}.example.app'],function() { Route::get('/',function () { return view('index'); }); Route::get('test',function(){ return view('index'); }); }); 它适用于除example.app之外的所有域.不幸的是,可选参数{domain?}不适用于子域,我不想复制这样的路由. Route::get('/',function () { return view('index'); }); Route::get('test',function(){ return view('index'); }); Route::group(['domain' => '{domain}.example.app'],function(){ return view('index'); }); }); 有人可以建议如何避免这种重复吗?
多数民众赞成{domain} .example.app需要一个.在example.app之前.
你可以删除.并为域参数添加约束,使其至少为1. 所以代码看起来像 Route::group(['domain' => '{domain}example.app'],function($group) { Route::get('/',function ($domain) { //code }) ; // more routes foreach($group->getRoutes() as $route){ $route->where('domain','[a-z]+.{0,1}'); } }); 附: :我不知道我的正则表达式是否正确. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |