这是我在这里的第一篇帖子:)
主要是我在将字符串url转换为基本数组格式时遇到了问题。
$arrayUrl=array('controller'=>'SomeController','action'=>'someAction','someValue');
$url=Router::url($arrayUrl); //$url is now '/path/to/site/someController/someAction/someValue'
$url=Router::normalize($url); //remove '/path/to/site'
$parsed=Router::parse($url); /*$parsed is now
Array(
[controller] => someController
[action] => someAction
[named] => Array()
[pass] => Array([0] => someValue)
[plugin] =>
) */
这似乎是一个可怕的代码做一些简单的事情,如转换两个核心格式。另外,请注意,$parsed仍然与$arrayUrl不同。当然我可以手动调整$parsed,实际上作为一个快速补丁,我已经做了几次了,但我想深入了解一下。
我还注意到,使用前缀路由时,$this->控制器中的参数具有嵌入在操作中的前缀(即,[操作]=>'admin(编辑),而Router::parse()的结果不存在。当然,它们都有自己的密钥前缀。
当然,我很容易理解这一点,但我仍然愿意相信,蛋糕是由一群比我更有经验和洞察力的人开发的,所以我猜这是一个很好的理由“被感知的错误行为”。
我尽量把我的问题说清楚,但由于我的英语水平不高,我不得不绕道几步:)如果需要的话,我会多解释。