CakePHP路由,使用带有默认前缀的语言前缀
我正在尝试创建一个默认的路由前缀 将转到希伯来文页面,而 将导致出现英文页面CakePHP路由,使用带有默认前缀的语言前缀,cakephp,routing,default,prefix,Cakephp,Routing,Default,Prefix,我正在尝试创建一个默认的路由前缀 将转到希伯来文页面,而 将导致出现英文页面 Router::connect('/:language/mycont',array('controller'=>'contname','action'=>'index'),array('language'=>'[a-z]{0,3}')); 此代码允许我使用0-3个字母作为语言,但它仍然需要一种语言 行得通 不起作用 有没有办法解决这个问题? 使用默认路由是否可能?让我先说明一下,我不是路由专家,但在
Router::connect('/:language/mycont',array('controller'=>'contname','action'=>'index'),array('language'=>'[a-z]{0,3}'));
此代码允许我使用0-3个字母作为语言,但它仍然需要一种语言
行得通
不起作用
有没有办法解决这个问题?
使用默认路由是否可能?让我先说明一下,我不是路由专家,但在这种情况下,您所做的工作不起作用是有道理的,因为路由需要一个语言参数;如果不在那里,路线就不匹配
要“修复”(引用,因为它没有真正损坏),您可能需要尝试设置默认区域设置,并在
AppController
中,如果存在:language
值,则覆盖该区域设置。我的解决方案只是将/设置为特定语言,而其他所有内容都已标记
/:语言/
这样我就不会重复路线。这看起来像是一个快速而可靠的解决方案!我能想到的唯一其他合理的选择是重写Router::connect函数,以便在不存在时设置default:language值。但这可能有点过头了。