在Cakephp 3中找不到“路由器”类

问题描述:

I am upgrading my cakephp version from 2.6.7 to 3.3.4. The following code was properly working to refer the home url:

<?php echo Router::url('/', true); ?>

But this not working in cakephp 3.3.4 and it shows the following error message:

Error: Class 'Router' not found 

Which I missed? Thanks in advance.

我正在将cakephp版本从2.6.7升级到3.3.4。 以下代码正确地工作以引用主页: p>

 &lt;?php echo Router :: url('/',true);  ?&gt; 
  code>  pre> 
 
 

但这在cakephp 3.3.4中无效,它显示以下错误消息: p>

 错误:未找到类'路由器'
  code>  pre> 
 
 

我错过了什么? 提前致谢。 p> div>

You need to make yourself comfortable with PHP namespaces. The Router class lives in the Cake\Routing namespace, hence you have to use either:

\Cake\Routing\Router::url()

or import the class:

use Cake\Routing\Router;

That being said, in your views you may want to use the Url helper instead (as mentioned by Jacek B Budzynski in the comments), in order to avoid the hard dependency on the Router class:

$this->Url->build('/', true)

See also