(Yaf >=2.3.0)
Yaf_Route_Supervar::assemble — 组合 url
$info
, array $query
= ?): string根据指定参数和自定义参数将 supervar 这个 route 组合成 url
info
需要传入一个数组,数组中每个 key 可为 :m、:c、:a,:m 代表 module,:c 代表 controller, :a 代表 action
query
用户自定义的 query string,将根据此路由规则拼接在 url 中
返回 string。
如果 info
中 ':c'
和 ':a'
键未设置,抛出 Yaf_Exception_TypeError。
示例 #1 Yaf_Route_Supervar::assemble() 示例
<?php
$router = new Yaf_Router();
$route = new Yaf_Route_Supervar('r');
$router->addRoute("supervar", $route);
var_dump($router->getRoute('supervar')->assemble(
array(
':a' => 'yafaction',
'tkey' => 'tval',
':c' => 'yafcontroller',
':m' => 'yafmodule'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2'
)
));
try {
var_dump($router->getRoute('supervar')->assemble(
array(
':a' => 'yafaction',
'tkey' => 'tval',
':m' => 'yafmodule'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2',
1 => array(),
)
));
} catch (Exception $e) {
var_dump($e->getMessage());
}
以上示例的输出类似于:
string(%d) "?r=/yafmodule/yafcontroller/yafaction&tkey1=tval1&tkey2=tval2" string(%d) "You need to specify the controller by ':c'"