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