2016-11-19 4 views
0

管理ページにリンクするdefault.ctpレイアウトファイルにリンクを作成しようとしています。私はこれを試してみましたdefault.ctpにテンプレートファイルでCakephp 3 - 管理者プレフィックスのリンクが作成されていない

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); 
}); 

:私はこれ持ってroute.phpで

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に行くと、実際にはadminのbuildsettingsコントローラに行くので、ルーティング自体が正しく機能していることが分かります。

私はここで間違っていますか?

答えて

3

あなたが探しているのは、ドキュメントに少し隠されています。実際、あなたが探している直接的なものは、まったく存在しないと私は信じています。コントローラとアクションにリンクするときに接頭辞を追加できますが、コントローラなしでリンクを与えるために接頭辞を追加することはできません。しかし、あなたが望むものを達成するための回避策があります。

'prefix' => 'admin'

は実際にトリックをしたような

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

おかげで、使用されます。 Tyvm – DijkeMark

関連する問題