在 CakePHP 3 中,如何为基数 URL 生成 link?

How do you generate a link to the base URL in CakePHP 3?

我有一个模板,我想在其中生成指向应用程序基础 URL 的锚点。在我的例子中,处理这个的方法是 FrontController::index().

如果它只是一个简单的 link,我可以在模板中轻松完成此操作:

<?= $this->Html->link('Home', ['controller' => 'Front', 'action' => 'index']); ?>

但是,我想在其他标记周围包裹一个锚标记,而不是简单的 link 和文本 "Home"。我想要的纯 HTML 输出(不使用 Cake 的辅助方法)将是:

 <a href="/">
     <img class="app-logo" src="/app-logo.png"> 
     <span class="app-name">App name</span>
 </a>

我已经阅读了 How to get the base Url in cakephp? 和 none 中有效的方法:

echo $this->webroot; // produces 'false'
echo Router::url('/'); // produces 'Class 'App\Controller\Router' not found`

CakePHP 3.5.13

您可以使用路由器Class

<a href="<?= \Cake\Routing\Router::url(['controller' => 'Front', 'action' => 'index']) ?>">
    <img class="app-logo" src="/app-logo.png"> 
    <span class="app-name">App name</span>
</a>

编辑:CakePHP 3.x 使用命名空间。您必须使用完全限定的 class 名称或在脚本顶部添加 use 语句。

echo \Cake\Routing\Router::url(...);

use Cake\Routing\Router;

echo Router::url(...);