如何在CakePHP 3中生成指向基本URL的链接?

时间:2018-07-10 08:37:06

标签: cakephp-3.0 cakephp-3.x

我有一个模板,我想在其中生成应用程序基本URL的锚点。就我而言,处理此问题的方法是FrontController::index()

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

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

但是,我不仅希望将简单的链接与文本“ Home”联系起来,还希望在其他一些标记周围包裹一个定位标记。我想要的纯HTML输出(不使用Cake的helper方法)将是:

 <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?,但其中的任何方法均无效:

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

CakePHP 3.5.13

1 个答案:

答案 0 :(得分:1)

您可以使用路由器类

<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使用命名空间。您必须使用完全限定的类名或在脚本顶部添加一条use语句。

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

use Cake\Routing\Router;

echo Router::url(...);