Symfony-具有不同访问控制的两条相同路线
我有一个索引页,对于经过身份验证的用户和未经身份验证的用户来说,它看起来完全不同。是否可以创建两个具有相同路由路径的独立控制器/但其中一个仅提供给登录的用户,另一个仅提供给来宾 使用: Symfony 5 PHP7.2Symfony-具有不同访问控制的两条相同路线,symfony,authentication,controller,routes,Symfony,Authentication,Controller,Routes,我有一个索引页,对于经过身份验证的用户和未经身份验证的用户来说,它看起来完全不同。是否可以创建两个具有相同路由路径的独立控制器/但其中一个仅提供给登录的用户,另一个仅提供给来宾 使用: 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是公共的还是私有的,是否有路由取决于您真正想要的,但这将允许您使用较短的函数,其中只包含每个函数所需的内容。是的,我个人最有可能只是在控制器内检查并提供不同的视图。