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

Abd*_*yan 1 php routes cakephp cakephp-3.x cakephp-3.3

我正在将我的 cakephp 版本从 2.6.7 升级到 3.3.4。以下代码可以正常工作以引用主页网址:

<?php echo Router::url('/', true); ?>
Run Code Online (Sandbox Code Playgroud)

但这在 cakephp 3.3.4 中不起作用,并显示以下错误消息:

Error: Class 'Router' not found 
Run Code Online (Sandbox Code Playgroud)

我错过了哪个?提前致谢。

ndm*_*ndm 7

您需要熟悉 PHP 名称空间。该Router班住在Cake\Routing命名空间中,因此你必须要么使用:

\Cake\Routing\Router::url()
Run Code Online (Sandbox Code Playgroud)

或导入类:

use Cake\Routing\Router;
Run Code Online (Sandbox Code Playgroud)

话虽如此,在您的观点中,您可能希望改用Url助手(如 Jacek B Budzynski 在评论中提到的),以避免对Router类的硬依赖:

$this->Url->build('/', true)
Run Code Online (Sandbox Code Playgroud)

也可以看看