2016-11-19 75 views
0

我想在链接到管理页面的default.ctp布局文件中创建一个链接。Cakephp 3 - 创建与管理前缀不工作的链接

在route.php我有这样的:

Router::prefix('admin', function ($routes) { 
    // All routes here will be prefixed with `/admin` 
    // And have the prefix => admin route element added. 
    $routes->connect('/login', array('controller' => 'Users', 'action' => 'login')); 
    $routes->connect('/logout', array('controller' => 'Users', 'action' => 'logout')); 

    $routes->fallbacks(DashedRoute::class); 
}); 

在default.thtml中的模板文件我已经试过这样:

echo $this->Html->link('Build Settings', '/buildsettings', array('admin' => true)); 
echo $this->Html->link('Build Settings', '/buildsettings', array('prefix' => 'admin')); 
echo $this->Html->link('Build Settings', '/buildsettings', array('prefix' => 'admin', 'admin' => true)); 

然而,它创建的链接是这样的:

<a href="/buildsettings" admin="1">Build Settings</a> 

虽然它应该是这样的:

<a href="/admin/buildsettings">Build Settings</a> 

/admin/buildsettings,实际上去管理员buildsettings控制器,所以我知道路由本身工作,只是没有创建适当的链接。

我在做什么错在这里?

回答

3

你要找的东西有点隐藏在文档中。事实上,我相信,你所寻找的直接的东西根本不存在。您可以在链接到控制器和操作时添加前缀,但为了在没有控制器的情况下提供链接,则不能添加前缀。但是,有一项工作可以实现您想要的功能。

'prefix' => 'admin'

使用,如

<?php echo $this->Html->link('Build Settings', ['prefix' => 'admin','controller' => 'buildsettings']); ?> 
+0

谢谢,实际上做的伎俩。 Tyvm – DijkeMark