Вариант использования:
- У меня есть данные, которые имеют как идентификатор, так и МАРШРУТ
- У меня есть список ссылок и маршрутизатор, которые используют идентификатор, чтобы при изменении заголовка или маршрута ссылки всегда указывали на один и тот же контент.
- Я бы хотел, чтобы МАРШРУТ отображался в URL-адресе, а не в идентификаторе, когда пользователь заходит на страницу в целях удобства использования и SEO.
В настоящее время я использую редирект для этого и сомневаюсь, что это правильный способ справиться с этим.
public function show($slug)
{
$list = array(
// blog data goes in here
};
// when we go to the blog post page, we loop through the blog post data
foreach ($list as $post) {
// if the slug from our url is equal to the ID
if ($slug == $post['id']){
// redirect to the user-friendly route instead
$route = '/blog/' . $post['route'];
return $this->redirect($route);
}
// if this is the user-friendly, route, then render the page
if ($slug == $post['route']) {
$title = $post['title'];
$content = $post['content'];
}
}
// hello/show.html.twig is the twig template I'm currently using to render single pages
return $this->render('hello/show.html.twig', [
'title' => $title,
'content' => $content,
]);
}
Технически это работает, но я действительно не думаю, что это действительно правильный метод. Есть ли лучший способ использования двух маршрутов для одного и того же представления и предоставления предпочтительного режима для одного маршрута над другим где-то между щелчком по ссылке и отображением страницы?