And*_*ing 26 php routing laravel laravel-routing
假设我有以下内容:
Route::group(array('domain' => array('admin.example.com')), function()
{
...
});
Route::group(array('domain' => array('app.example.com')), function()
{
...
});
Route::group(array('domain' => array('dev.app.example.com')), function()
{
...
});
Run Code Online (Sandbox Code Playgroud)
有没有办法让多个域共享一个路由组?就像是:
Route::group(array('domain' => array('dev.app.example.com','app.example.com')), function()
{
...
});
Run Code Online (Sandbox Code Playgroud)
And*_*ing 51
Laravel似乎不支持这一点.
我不确定为什么我不会更快地想到这一点,但我想一个解决办法就是在一个单独的函数中声明路由,将其传递给两个路由组.
Route::group(array('domain' => 'admin.example.com'), function()
{
...
});
$appRoutes = function() {
Route::get('/',function(){
...
});
};
Route::group(array('domain' => 'app.example.com'), $appRoutes);
Route::group(array('domain' => 'dev.app.example.com'), $appRoutes);
Run Code Online (Sandbox Code Playgroud)
我不确定此解决方案是否会对性能产生重大影响.
小智 12
Laravel 5.1
Route::pattern('subdomain', '(dev.app|app)');
Route::group(['domain' => '{subdomain}.example.com'], function () {
...
});
Route::pattern('subdomain', '(dev.app|app)');
Route::pattern('domain', '(example.com|example.dev)');
Route::group(['domain' => '{subdomain}.{domain}'], function () {
...
});
您也可以传递域名:
Route::pattern('domain', '(domain1.develop|domain2.develop|domain.com)');
Route::group(['domain' => '{domain}'], function() {
Route::get('/', function($domain) {
return 'This is the page for ' . $domain . '!';
});
});
Run Code Online (Sandbox Code Playgroud)
以防万一您需要知道使用哪个域名调用控制器。使用 Laravel 5.6 对其进行了测试。
归档时间: |
|
查看次数: |
23489 次 |
最近记录: |