Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony-仅从一个URL将404重定向到自定义模板_Php_Symfony - Fatal编程技术网

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

Php Symfony-仅从一个URL将404重定向到自定义模板,php,symfony,Php,Symfony,当用户想要开始彼此之间的视频聊天时,我在我的页面上创建了视频聊天室(通过细枝)。当他们离开房间时,房间在一段时间后被删除,他们必须创建一个新房间才能再次开始交谈。问题是,我有一个通知系统,它将旧URL保留在通知中,当用户尝试在一段时间后再次单击该URL时,他会收到404 我不想在这一点上有任何出色的解决方案,我只想移动用户到自定义小枝模板,如果房间不再可用-让我们说。404video.html 谢谢你的帮助 /** * @Route("/video/join/{room_name}", nam

当用户想要开始彼此之间的视频聊天时,我在我的页面上创建了视频聊天室(通过细枝)。当他们离开房间时,房间在一段时间后被删除,他们必须创建一个新房间才能再次开始交谈。问题是,我有一个通知系统,它将旧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(),
    ]);
}

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

您可以在symfony官方网站上找到更多详细信息:


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

这有点不同,不幸的是,因为是Twig根据从API接收的内容生成异常,它不是典型的404。在这种情况下,我想在我共享的代码中关闭它,并将其转发到自定义的404x.html.twig模板,或者将chat/video_join.html.twig(比方说)中的所有异常转发到自定义的404x.html.twig请不要破坏您的帖子。这可能会导致一个错误。通过在Stack Exchange网络上发布,您已授予SE分发该内容的不可撤销的权利(根据)。根据SE政策,任何故意破坏行为都将恢复原状。如果您想将此帖子与您的帐户解除关联,请参阅(假设这是一系列错误点击)。)在一次在线工作聊天中,我确实让一只猫在我的键盘上跑来跑去。它确实发生了