Symfony-仅从一个URL将404重定向到自定义模板

时间:2018-10-11 01:41:23

标签: php symfony

当用户希望彼此之间进行视频聊天时,我在页面上创建了视频室(通过Twig)。他们离开会议室后,将在一段时间后删除会议室,并且他们必须创建一个新会议室才能重新开始通话。问题是我有一个通知系统,该系统在您的通知中保留了旧的URL,并且当用户在一段时间后尝试再次单击该URL时,他会收到404。

我现在不希望有任何出色的解决方案,我只是想在房间不再可用时将用户转移到自定义树枝模板中-假设。 404video.html

感谢您的帮助!

/**
 * @Route("/video/join/{room_name}", name="videochat_join")
 *
 * @param $room_name
 *
 * @return RedirectResponse|Response
 *
 * @throws \Twilio\Exceptions\ConfigurationException
 * @throws \Twilio\Exceptions\TwilioException
 */
public function joinVideo($room_name)
{
    $user = $this->getCurrentUser();
    $twilio = new Client(getenv('TWILIO_API_KEY'), getenv('TWILIO_API_SECRET'));
    $room = $twilio->video->v1->rooms($room_name)->fetch();
    $roomSid = $room->sid;
    $token = new AccessToken(getenv('TWILIO_ACCOUNT_SID'), getenv('TWILIO_API_KEY'), getenv('TWILIO_API_SECRET'), 3600, $user->getEmail());
    $videoGrant = new VideoGrant();
    $videoGrant->setRoom($room_name);
    $token->addGrant($videoGrant);
    return $this->render('chat/video_join.html.twig', [
        'roomSid' => $roomSid,
        'roomName' => $room_name,
        'accessToken' => $token->toJWT(),
    ]);
}

1 个答案:

答案 0 :(得分:1)

如果您使用的是Symfony 4,则需要在templates/bundles/TwigBundle/Exception/中创建模板error404.html.twig,因此404页面将从此error404.html.twig(自定义模板)中呈现内容。

您可以在symfony官方网站上找到更多详细信息:https://symfony.com/doc/current/controller/error_pages.html

请注意,自定义错误页面仅在生产模式下可用,因此,如果要检查自定义404,则必须在生产模式下运行应用程序。