为了迁移到cakephp 3并掌握在此版本的框架上制作应用程序的技巧,我刚刚编写了应用程序和插件。
我想在插件,管理,客户等网页应用程序。
我可以访问插件中的位置,例如myapp/admin /user、myapp/admin/,但是如果我试图访问url myapp/admin(最后没有斜杠),我必须重定向myapp/webroot/admin/。
在myapp/webroot/我有一个名为admin的主题文件夹中,我试图在admin中更改名称,但仍然有一个重定向。
如何解决这个问题?
谢谢。
发布于 2015-11-29 14:23:22
,这适用于cakephp 3.1.2
步骤1:将admin前缀的路由设置在常规/之上
// code ...
// for prefix admin
Router::prefix('admin', function ($routes) {
// All routes here will be prefixed with `/admin`
// And have the prefix => admin route element added.
$routes->fallbacks('InflectedRoute');
});
// for the non-prefix routes
Router::scope('/', function ($routes) {
// more code ...步骤2:在控制器文件夹中创建一个名为Admin的文件夹
将适当的控制器转储到那里。
Controller
|
|------Admin
| |
| |----- AppController.php
| |---- ProductsController.php // this handles all the admin actions
|
|----- ProductsController.php // this handles the non-prefix actions 步骤3:确保Admin文件夹中的所有控制器使用命名空间namespace App\Controller\Admin;
步骤4:使Admin文件夹中的所有控制器扩展AppController 在中的管理文件夹
步骤5:在beforeFilter中为App/Controller/Admin/AppController添加以下内容
public function beforeFilter(Event $event)
{
$this->viewBuilder()->theme('AppUI'); // AppUI is my plugin name
$this->viewBuilder()->layout('AppUI.backend');
}为什么要这么做?
因为现在的主题应该是一个插件。请参阅http://book.cakephp.org/3.0/en/views/themes.html#themes
我引用一下
CakePHP中的主题只是专注于提供模板文件的插件。
如下所示:
plugins
|
|------AppUI
| |
| |----- src
| |
| |---- Template
| |---- Layout
| |---- backend.ctphttps://stackoverflow.com/questions/29434095
复制相似问题