Symfony-具有不同访问控制的两条相同路线

Symfony-具有不同访问控制的两条相同路线,symfony,authentication,controller,routes,Symfony,Authentication,Controller,Routes,我有一个索引页,对于经过身份验证的用户和未经身份验证的用户来说,它看起来完全不同。是否可以创建两个具有相同路由路径的独立控制器/但其中一个仅提供给登录的用户,另一个仅提供给来宾 使用: Symfony 5 PHP7.2 除非允许使用不同的方法,否则任何地方都不可能有两条相同的路线。根据您的其他项目需求,您可以创建一个服务,根据用户身份验证,在需要时使用不同的数据加载不同的视图。对于一个更简单的示例,您可以检查用户是否登录到控制器索引函数中,并在每种情况下返回不同的响应。您可以参考两种不同的方法返

我有一个索引页,对于经过身份验证的用户和未经身份验证的用户来说,它看起来完全不同。是否可以创建两个具有相同路由路径的独立控制器/但其中一个仅提供给登录的用户,另一个仅提供给来宾

使用:

Symfony 5 PHP7.2
除非允许使用不同的方法,否则任何地方都不可能有两条相同的路线。根据您的其他项目需求,您可以创建一个服务,根据用户身份验证,在需要时使用不同的数据加载不同的视图。对于一个更简单的示例,您可以检查用户是否登录到控制器索引函数中,并在每种情况下返回不同的响应。

您可以参考两种不同的方法返回响应,并从路由方法返回该响应

/**
 * @Route("/")
 * @return Response
 */
public function index(): Response
{
    if (/*user is logged logic*/) {
        return $this->indexLogged();
    } else {
        return $this->indexAnonymous();
    }
}

private function indexLogged(): Response
{
    return new Response();
}

private function indexAnonymous(): Response
{
    return new Response();
}

indexLogged和indexAnonymous是公共的还是私有的,是否有路由取决于您真正想要的,但这将允许您使用较短的函数,其中只包含每个函数所需的内容。

是的,我个人最有可能只是在控制器内检查并提供不同的视图。