Altorouter多语言路由



是否可以使用Altorouter来创建多语言路由设置?我想发送一个变量与目标文件(以便它显示不同的内容时,查看),例如-

$router->map('GET','/th/work/sample', 'work/sample.php', 'sample', 'th');

但是第五个参数是不可用的。有什么解决办法吗?

如果您的语言URL足够规则,您可以在URL中使用模式匹配来实现这一点。

根据文档,定义路由

$router->map('GET', '/[:lang]/work/sample', 'work/sample.php', 'sample')
当点击'/th/work/sample' URL时,

将捕获$lang中的'th'。如果需要更复杂的模式匹配,还可以指定自定义正则表达式。

$router->map('GET','/th/work/sample', 'work/sample.php', 'sample', 'th');

但是第五个参数是不可用的。有什么解决办法吗?

这是因为map函数不支持第五个形参。

public function map($method, $route, $target, $name = null)

AltoRouter.php:map

你可以调用match函数传递在原始路由,如果你能以某种方式拦截和让你的代码在路由器之前工作。match函数返回一个路由名。但这意味着你要为每种语言创建命名路由,然后你就会开始欣赏@gbe

提供的解决方案。

$router->map('GET', '/[:lang]/work/sample', 'work/sample.php', 'sample')

相关内容

  • 没有找到相关文章

最新更新