Symfony - перенаправить 404 на пользовательский шаблон только с одного URL - PullRequest
0 голосов
/ 11 октября 2018

У меня есть видео комнаты (через Twig), которые создаются на моей странице, когда пользователи хотят начать видео чат между собой.Когда они выходят из комнаты, комната удаляется через некоторое время, и им нужно создать новую комнату, чтобы начать разговор снова.Проблема в том, что у меня есть система уведомлений, которая оставляет старый 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 голосов
/ 11 октября 2018

Если вы используете Symfony 4, вам нужно создать шаблон error404.html.twig в templates/bundles/TwigBundle/Exception/, поэтому страница 404 будет отображать содержимое этого error404.html.twig (пользовательский шаблон).

Вы можете найти более подробную информацию на официальном сайте Symfony: https://symfony.com/doc/current/controller/error_pages.html

Обратите внимание, что настраиваемая страница ошибок доступна только в производственном режиме, поэтому, если вы хотите проверить настраиваемый 404, вам необходимо запустить свое приложение в производственном режиме.режим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...