【发布时间】:2016-07-13 13:15:23
【问题描述】:
试图在控制器上调用方法,但这在 AltoRouter 上不起作用
$router->map( 'GET', '/users/[i:id]/', 'UserController#showDetails' );
我做错了什么?
PS:Controller方法上如何获取参数也没有示例。
【问题讨论】:
标签: php altorouter
试图在控制器上调用方法,但这在 AltoRouter 上不起作用
$router->map( 'GET', '/users/[i:id]/', 'UserController#showDetails' );
我做错了什么?
PS:Controller方法上如何获取参数也没有示例。
【问题讨论】:
标签: php altorouter
路由是正确的——假设UserController 在全局命名空间中。如果不是,请确保在字符串中使用完全限定的命名空间。
$router->map( 'GET', '/users/[i:id]/', 'App\UserController#showDetails' );
然后,在您的控制器中,您将像这样访问参数:
public function showDetails ($id) {
}
[i:id] 表示将integer 匹配为名为@987654326@ 的变量。
【讨论】:
$router->map( 'GET', '/hello', function() {.......请您发布完整的脚本跨度>
call_user_func_array( $match['target'], $match['params'] ); 还是require $match['target']; ??
UserController#showDetails 替换为UserController::showDetails...这是call_user_func() 可以在类中调用另一个方法的唯一方法。