Cakephp 3 - 创建管理前缀不起作用的链接

时间:2016-11-19 15:36:01

标签: php cakephp routing cakephp-3.0

我正在尝试在default.ctp布局文件中创建链接到管理页面的链接。

在route.php中我有这个:

$_server['PHP_self']

在default.ctp模板文件中,我试过这个:

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

但是,它创建的链接是:

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>

转到 / admin / buildsettings ,实际上是转到admin buildsettings控制器,所以我知道路由本身有效,只是没有创建正确的链接。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

您正在寻找的内容有点隐藏在文档中。事实上,我认为,你所寻找的直接事物并不存在。您可以在链接到控制器和操作时添加前缀,但是为了提供没有控制器的链接,您无法添加前缀。但是,有一种方法可以达到你想要的效果。

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

用于诸如

double* matData = new double[N*M];