我有一个模板,我想在其中生成一个锚定到我的应用程序的基URL。在我的例子中,处理这个问题的方法是 FrontController::index() .
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型
你可以使用路由器类
<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(...);