gpt4 book ai didi

php - 如果路由不存在则重定向

转载 作者:行者123 更新时间:2023-12-04 18:00:46 25 4
gpt4 key购买 nike

我有一个问题:例如,我在 symfony3 中有一个应用程序,它具有以下路由:/admin/login,admin/news,admin/gallery,但路径 /admin/authentification 不存在。所以我的想法是,如果路由不存在,我想将用户重定向到主页 /。你能帮我吗 ?提前致谢,对不起我的英语

最佳答案

我不确定这是最佳解决方案,但您可以使用 UrlMatcher检查您传递的 URL 是否与可用路由相关联:

/**
* @Route("/debug")
*/

public function DebugAction(){
$router = $this->get('router');

//Get all the routes that exist.
$routes = $router->getRouteCollection();
$context = $router->getContext();

$urlMatcher = new UrlMatcher($routes, $context);

$url = '/admin/login';
try{
//UrlMatcher::match() will throw a ResourceNotFoundException if the route
//doesn't exist.
$urlMatcher->match($url);
return $this->redirect($url);
} catch (\Symfony\Component\Routing\Exception\ResourceNotFoundException $e){
return $this->redirect('/');
}
}

我不是特别喜欢这个解决方案,因为它依赖于捕获异常,而不是检查 bool 值来确定路由是否存在。

关于php - 如果路由不存在则重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35708893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com