关于altorouter Q& A,我发现了这个例子here,关于如何在使用altorouter时调用命名控制器和方法。
$router->map('GET','/content/[:parent]/?[:child]?', 'content_controller#display_item', 'content');
语法
$router(method, route, target, name(optional));
我得到了如何映射方法,路由但不了解如何让目标映射/调用未命名的控制器或方法?
答案 0 :(得分:0)
我尝试了这个似乎有效,但我还需要确认,如果我们应该这样做的话
$router->map('GET', '/[a:controller]/[a:action]?', function ($controller, $action = null) {
if ($action=='') {$action = 'index';}
if (method_exists($controller, $action)) {
$controller::$action();
} else {
echo 'missing';
}
});
此处路由器为/[a:controller]/[a:action]?
,目标为函数
function ($controller, $action = null) {
if ($action=='') {$action = 'index';}
if (method_exists($controller, $action)) {
$controller::$action();
} else {
echo 'missing';
}
});
获取未命名的控制器并检查方法/操作。如果方法/操作为空,则将索引分配给变量$ action,然后映射。
请确认调用未定义的控制器和mehtod是否是正确的战争