我有一个运行中的CakePHP 3应用程序。已经有两年了,是时候进行一些图形改进了。
我要做的是创建一个新的主题插件,该插件的大多数操作(使用不同的视图模板)应使用“默认”控制器,除了某些页面将完全不同。
因此,我正在尝试为该应用创建一个新的主页。在主题插件的路由器中,我有这个:
Router::plugin('Theme2', ['path' => '/'], function ($routes) {
$routes->connect('/', ['controller' => 'Dashboard', 'action' => 'display']);
$routes->fallbacks('DashedRoute');
});
这是默认路由器(的一部分):
Router::scope('/', function ($routes) {
$routes->connect('/', ['plugin' => null, 'controller' => 'Pages', 'action' => 'display', 'dashboard']);
$routes->connect('/istruzioni', ['plugin' => null, 'controller' => 'Pages', 'action' => 'display', 'admin']);
....
主页正常工作。
问题是指向其他页面的所有链接均不起作用:
<a href='<?= $this->Url->build(['controller' => 'Pages', 'action' => 'display', 'admin']) ?>'>Link</a>
这将生成指向错误的/pages/display/admin
的链接,并且在此方法正常运行时,它会将我发送到错误页面,提示Error: Theme2.PagesController could not be found.
。
<a href='<?= $this->Url->build('/impostazioni') ?>'>Link</a>
尽管它们应该指向同一页面。我想念什么?
p.s。我知道我可以使用HTML链接帮助程序,这不是重点(我想:))