【问题标题】:PHP AltoRouter Call a method on ControllerPHP AltoRouter 在控制器上调用方法
【发布时间】:2016-07-13 13:15:23
【问题描述】:

试图在控制器上调用方法,但这在 AltoRouter 上不起作用

$router->map( 'GET', '/users/[i:id]/', 'UserController#showDetails' );

我做错了什么?

PS:Controller方法上如何获取参数也没有示例。

【问题讨论】:

    标签: php altorouter


    【解决方案1】:

    路由是正确的——假设UserController 在全局命名空间中。如果不是,请确保在字符串中使用完全限定的命名空间。

    $router->map( 'GET', '/users/[i:id]/', 'App\UserController#showDetails' );
    

    然后,在您的控制器中,您将像这样访问参数:

    public function showDetails ($id) {
    
    }
    

    [i:id] 表示将integer 匹配为名为@9​​87654326@ 的变量。

    【讨论】:

    • 我真的迷路了,我可以使用 Laravel 路由和所有东西,但使用 AltoRouter 我只能使用可调用函数,即:$router->map( 'GET', '/hello', function() {.......请您发布完整的脚本跨度>
    • 我应该使用call_user_func_array( $match['target'], $match['params'] ); 还是require $match['target']; ??
    • 能否请您发布所有文件......index.php....UserContorller.php 及其具体路径
    • 你为什么不在 laravel 项目中使用 laravel 路由?
    • 我明白了,整个过程只是简单地将UserController#showDetails 替换为UserController::showDetails...这是call_user_func() 可以在类中调用另一个方法的唯一方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2011-02-04
    • 2018-03-29
    • 1970-01-01
    • 2018-12-15
    相关资源
    最近更新 更多