在 CakePHP 3.5 中解析引用请求



我需要解析上一页的URL才能知道我来自哪个页面。我得到它:

$this->referer('/', true);

我正在尝试使用它来获取信息:

Router::parse($this->referer('/', true));

但是方法Router::parse已被弃用,并将在下一个版本的cake PHP中删除。

然后,我尝试使用:

Router::parseRequest($this->referer('/', true));

但是我收到此错误:

参数 1 传递给 Cake\Routing\Router::p arseRequest() 必须 实现接口 Psr\Http\Message\ServerRequestInterface, string 鉴于

我搜索了很长时间的解决方案,但我没有找到任何可靠的解决方案。也许我错过了什么,有人有想法吗?

提前谢谢你!

  • 您可以使用请求对象:
    $controller = $this->request->getParam('controller');
    $action = $this->request->getParam('action');
  • 如果您不能使用它,那么您可以按照@ndm的建议进行操作:
    $referer = new CakeHttpServerRequest(['url' => $this->referer()]);
    $controller = $this->request->getParam('controller');
    $action = $this->request->getParam('action');
  • 您可以按照此处的建议使用 getRouteCollection:
    Router::getRouteCollection()->parse($this->referer());

最新更新