在 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(...);
我有一个模板,我想在其中生成指向应用程序基础 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(...);