在路由器中调用未命名的控制器和方法

时间:2017-01-29 08:33:30

标签: php model-view-controller routing router

关于altorouter Q& A,我发现了这个例子here,关于如何在使用altorouter时调用命名控制器和方法。

$router->map('GET','/content/[:parent]/?[:child]?', 'content_controller#display_item', 'content');

语法

$router(method, route, target, name(optional));

我得到了如何映射方法,路由但不了解如何让目标映射/调用未命名的控制器或方法?

1 个答案:

答案 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是否是正确的战争