代码之家  ›  专栏  ›  技术社区  ›  Andy

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

  •  0
  • Andy  · 技术社区  · 8 年前

    我有一个模板,我想在其中生成一个锚定到我的应用程序的基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 回复  |  直到 8 年前
        1
  •  1
  •   jbe    8 年前

    你可以使用路由器类

    <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>
    

    edit:cakephp 3.x使用名称空间。您必须使用完全限定的类名,或者在脚本顶部添加一个use语句。

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

    use Cake\Routing\Router;
    
    echo Router::url(...);
    
    推荐文章