2013-02-26 74 views
1

我正在使用yaf php框架php mvc更改默认url模式

我想获得参数数组。 例如:

我的网址:... mvcSample/SVC/saveUser/USER1 /通行证/ A @ BC /乔/富

我的输出PARAMS转储:

array (size=3) 
    'user1' => string 'pass' (length=4) 
    '[email protected]' => string 'joe' (length=3) 
    'foo' => null 

我想:

array (size=5) 
1 =>string 'user1' 
2 => string 'pass' 
3 => string '[email protected]' 
4 => string 'joe' 
5 =>string 'foo' 

如何更改默认的网址格式?

谢谢

+0

'a @ bc'不是有效的网址。这会抛出各种错误。 你至少应该使用'a%40b.c' – Tschallacka 2013-02-26 08:43:28

回答

0

由于YAF是很好的无证,我能想到的唯一的选择是由你自己来解析URI:

$parts = explode('/', $this->getRequest()->getRequestUri()); 

,但你会得到的$部分阵列begining垃圾。

Propably,迟早你会开始尝试自定义URL路由(一些样品,您可以在这里找到:http://docs.php.net/manual/da/yaf-route-regex.construct.php),这将让你解析使用正则表达式的网址,并通过匹配组控制器:

/* in Bootstrap.php */ 

$dispatcher->getRouter()->addRoute('saveUser', 
    new Yaf_Route_Regex(
     ',^/mvcSample/svc/saveUser/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$,', 
     array(
      'controller' => 'svc', 
      'action' => 'saveUser', 
     ), 
     array(
      1 => 'username', 
      2 => 'password', 
      3 => 'email', 
      4 => 'firstname', 
      5 => 'somefooshmoo', 
     ), 
    ) 
);