Tey*_*mur 10 php laravel laravel-routing laravel-5 laravel-5.1
我刚刚开始学习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');
});
});
Run Code Online (Sandbox Code Playgroud)
它适用于除example.app之外的所有域.不幸的是,可选参数{domain?}不适用于子域,我不想复制这样的路由.
Route::get('/', function () {
return view('index');
});
Route::get('test', function(){
return view('index');
});
Route::group(['domain' => '{domain}.example.app'], function() {
Route::get('/', function () {
return view('index');
});
Route::get('test', function(){
return view('index');
});
});
Run Code Online (Sandbox Code Playgroud)
有人可以建议如何避免这种重复吗?
那是因为{domain}.example.app
需要一个.
before example.app
。
您可以删除参数并为其.
添加domain
约束,使其最多为 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}');
}
});
Run Code Online (Sandbox Code Playgroud)
PS:我不知道我的正则表达式是否正确。
归档时间: |
|
查看次数: |
3266 次 |
最近记录: |