在CakePHP 3.5中解析引用请求

blpfk2vs  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(137)

我需要解析上一页的URL来知道我来自哪个页面。我用以下方法得到它:

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

我试着用这个来获取信息:

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

但是Router::parse方法已经过时了,将在下一个版本的cake PHP中删除。
然后,我试着用途:

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

但我得到这个错误:
传递给Cake\Routing\Router::parseRequest()的参数1必须实现接口Psr\Http\Message\ServerRequestInterface,给定的字符串
我找了很长时间的解决方案,但我没有找到任何可靠的解决方案。也许我错过了什么,有人有一个想法吗?
先谢谢你!

hmae6n7t

hmae6n7t1#

  • 您可以使用请求对象:
$controller = $this->request->getParam('controller');
    $action = $this->request->getParam('action');
  • 如果您无法使用它,则可以按照@ndm的建议进行操作:
$referer = new \Cake\Http\ServerRequest(['url' => $this->referer()]);
    $controller = $this->request->getParam('controller');
    $action = $this->request->getParam('action');
  • 您可以使用建议的getRouteCollection here
Router::getRouteCollection()->parse($this->referer());

相关问题