我正在使用适用于 PHP 的 Lithium 框架开发一个网站,并且我的控制器和视图需要有两个子目录(即管理员和博客):
-controllers
-admin
HomeController.php
...
-blog
HomeController.php
...
HomeController.php
...
-views
-admin
-home
index.html.php
...
...
-blog
-home
index.html.php
...
...
-layouts
default.html.php
admin.html.php
blog.html.php
到目前为止,我已经发现了允许在控制器中使用子域的Dispach::config()
方法,方法是:
Dispatcher::config(array('rules' => array(
'admin' => array('controller' => 'app\controllers\admin\{:controller}Controller'),
'blog' => array('controller' => 'app\controllers\blog\{:controller}Controller'),
)));
这在您使用以下路由时有效:
$options = array('continue' => true);
Router::connect('/admin', array(
'admin' => true,
'controller' => 'Home'
), $options);
Router::connect('/admin/{:args}', array(
'admin' => true
), $options);
Router::connect('/blog', array(
'blog' => true,
'controller' => 'Home'
), $options);
Router::connect('/blog/{:args}', array(
'blog' => true
), $options);
现在我遇到的问题是我无法弄清楚如何将其设置为自动使用admin/blog
模板和admin/blog
查看文件夹。