5

我收到以下错误:

Strict (2048): Non-static method Controller::referer() should not be called statically,
assuming $this from incompatible context [APP/View/Questions/admin_edit.ctp, line 20]

原因如下:

//in app/View/Questions/admin_edit.ctp
echo $this->Html->link('Cancel', Controller::referer() );

为什么?

4

2 回答 2

15

你没有。您改为使用请求对象:

$this->request->referer();

控制器在内部不做任何其他事情。

小心:referer 可以为空,因此在这种情况下您可能希望在此处提供后备。

另请注意可选参数 $local:

@param boolean $local If true, restrict referring URLs to local server

于 2013-04-17T20:50:06.370 回答
0
$referer_url = $this->referer('/', true); // you will get like (without base URL) "/users/profile"
$refererController = Router::parse($referer_url); // this will return $referer_url as array which contains 

Array ( 
   [controller] => users 
   [action] => profile 
}

如果有人在您使用时遇到任何错误,Router::parse($referer_url)请在您的控制器中添加 cakephp 路由

use Cake\Routing\Router;
于 2020-09-25T09:58:39.360 回答