Я изо всех сил пытаюсь найти способ настроить многопользовательскую маршрутизацию с Symfony4 таким образом, чтобы у меня был основной веб-сайт и собственный домен для каждого пользователя (например, в стиле saas).Я хочу разрешить доступ к группе маршрутов только в том случае, если домен принадлежит пользователю, или просто вернуть 404.
Этого легко добиться в Laravel с группами маршрутов и промежуточным ПО, которое просто проверяет хостпротив БД, но я не могу понять это в Symfony.
После просмотра документов становится ясно, как я могу гарантировать, что контроллер используется только в том случае, если хост совпадает с чем-то, но я не могувыяснить, как я могу сравнить хост с БД и с легкостью применить его к группе контроллеров. (возможно, импортирует? Я не знаю)
/**
* Class TestController
* @package App\Controller
* @Route(host="{domain}", requirements={
* "domain"=".+"
* })
*/
class TestController
{
/**
* @Route("/")
*/
public function main($domain)
{
return new Response(
'Domain: ' . $domain
);
}
}
Это то, что я хочу, но янеобходимо убедиться, что домен является действительным, прежде чем попасть на маршруты.Также будет бонусом, если $ домен может быть заменен идентификатором пользователя, которому он принадлежит.