Можно ли группировать несколько доменов в группе маршрутизации в 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()
{
...
});
Ответы
Ответ 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$');