是否可以使用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)
你可以调用match
函数传递在原始路由,如果你能以某种方式拦截和让你的代码在路由器之前工作。match函数返回一个路由名。但这意味着你要为每种语言创建命名路由,然后你就会开始欣赏@gbe
$router->map('GET', '/[:lang]/work/sample', 'work/sample.php', 'sample')