2016-11-19 67 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