【问题标题】:Calling unnamed controller and method in a router在路由器中调用未命名的控制器和方法
【发布时间】:2017-01-29 08:33:29
【问题描述】:

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

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

语法

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

我知道如何映射方法、路由但不明白如何让目标映射/调用未命名的控制器或方法?

【问题讨论】:

    标签: php model-view-controller routing router


    【解决方案1】:

    我试过了,它似乎可以工作,但如果这是我们应该的方式,我还需要确认

    $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 然后进行映射。

    请确认调用未定义的控制器和方法是否正确

    【讨论】:

      猜你喜欢
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      相关资源
      最近更新 更多