【问题标题】:Sonata Page when landing on / If user is already authenticated redirect to dashboard /profile/登陆时的奏鸣曲页面/如果用户已经通过身份验证重定向到仪表板/profile/
【发布时间】:2026-02-17 13:50:01
【问题描述】:

我没有主页控制器操作,因为奏鸣曲页面是强制性的。但是当用户已经通过身份验证并返回到根目录/(基本上是主页)时,我希望经过身份验证的用户的新主页成为他的仪表板(地址/profile/)这就是为什么我想出了从主页(/)到仪表板的重定向(/profile/)。

我可以在哪里/如何放置这个重定向? (并避免 javascript 重定向)

感谢您的帮助

【问题讨论】:

标签: symfony dashboard sonata


【解决方案1】:

您不需要设置重定向,只需在您的配置文件中添加您的默认目标路径:

firewalls:
  secured_area:
    form_login:
        always_use_default_target_path: true
        default_target_path: /loggedinpage

【讨论】:

  • 不行!这项工作适用于刚刚登录的用户(在我的情况下重定向到 /profile/ )。但是,如果用户再次来到主页 / 他的仪表板 (/profile/) 上没有重定向。这就是我想要做的。还是谢谢你
【解决方案2】:

好的,我知道了 您只需创建您的操作:

/**
 * Home page
 *
 * @Route("/", name="homepage")
 */
public function homeAction()
{
    /** @var User $user */
    $user = $this->get('security.token_storage')->getToken()->getUser();
    if (is_object($user) and $user instanceof User) {
        return $this->redirectToRoute('sonata_user_profile_show');
    }

    return $this->render('YourBestBundle:Template:template_home_layout.html.twig');
}

然后在数据库“page__page”表中搜索 parent_id=null 的主页路由,并在“route_name”列中选择“page_slug”(表示由奏鸣曲页面处理)替换为新的主页路由“主页”(来自家动作())。就是这样

【讨论】:

    最近更新 更多