有没有办法使用给定的 uri 获取控制器名称和操作名称?
例子:
uri: http://test/client/edit/48
控制器名称 => 客户端操作名称 => 编辑
有没有办法使用给定的 uri 获取控制器名称和操作名称?
例子:
uri: http://test/client/edit/48
控制器名称 => 客户端操作名称 => 编辑
您可以将您的 uri 与应用程序路由器匹配以获取RouteMatch
对象。
$request = new \Zend\Http\Request();
$request->setUri($uri);
$router = $serviceLocator->get('Router');
$routeMatch = $router->match($request);
现在您可以检索您的参数。
if ($routeMatch) {
$controller = $routeMatch->getParam('controller');
$action = $routeMatch->getParam('action');
}
在您的控制器中添加以下内容:-
use Zend\Stdlib\RequestInterface as Request;
use Zend\Stdlib\ResponseInterface as Response;
然后在你的控制器中创建一个调度函数
public function dispatch(Request $request, Response $response = null)
{
$controller = $this->params('controller');
$action = $this->params('action');
echo "Controller: " . $controller . " Action: " . $action;
}
虽然晚了,但是为了帮助新访客,在这里解决了,
简而言之,这段代码应该会有所帮助,
$controller = $this->params()->fromRoute('RouteParamForController');