Подтвердить что ты не робот

Можно ли группировать несколько доменов в группе маршрутизации в Laravel?

Скажем, у меня есть следующее:

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()
{
    ...
});

Есть ли способ, чтобы несколько доменов совместно использовали группу маршрутизации? Что-то вроде:

Route::group(array('domain' => array('dev.app.example.com','app.example.com')), function()
{
    ...
});
4b9b3361

Ответ 1

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);

Я не уверен, есть ли какое-либо значительное влияние на это решение.

Ответ 2

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 () {
  ...
});

Ответ 3

Заинтересованы в этом! Я пытаюсь зарегистрировать локальный маршрут развития субдомена + для одного действия контроллера.

то есть.

# Local Dev
Route::group(array('domain' => "{subdomain}.app.dev"), function() {
    Route::get('/{id}', '[email protected]');
});

# Production Server
Route::group(array('domain' => "{subdomain}.app.com"), function() {
    Route::get('/{id}', '[email protected]');
});

Я пробовал:

# Failed
Route::group(array('domain' => "{account}.app.{top_level_domain}"), function() {
    Route::get('/{id}', '[email protected]');
});

Но это не удалось.

Не большая проблема, поскольку DesignerGuy упомянул, что я могу просто передать функцию для обоих маршрутов - но это было бы просто более элегантно, если бы они могли быть сгруппированы:)

Ответ 4

зарегистрируйте laravel docs, если основной домен myapp, в производстве myapp.com, а в локальной среде myapp.dev попробуйте использовать a *

Route::group(array('domain' => '{subdomain}.myapp.*'), 
function()
{
    ...
});

Ответ 5

В настоящее время вы не можете. У меня такая же проблема'; мое исправление заключается в том, чтобы перебирать ваши поддомены с помощью foreach и регистрировать маршруты.

Ответ 6

см. эту ссылку. http://laravel.com/docs/routing#sub-domain-routing

Route::group(array('domain' => '{subdomain}.example.com'), function()
{
    ...
});

или использовать этот пакет.

https://github.com/jasonlewis/enhanced-router

Это поможет вам установить, где на групповой маршрутизации, как это.

Route::group(array('domain' => '{maindomain}'), function()
{
    ...
})->where('maindomain', '.+\.example\.com$');