我在 cakephp 中工作,我的/app/config/routes.php 文件中有以下两行:
/**
* ...and setup admin routing
*/
Router::connect('/admin/:controller/:action/*', array('action' => null, 'prefix' => 'admin', 'admin' => true, 'layout' => 'admin' ));
/**
* ...and set the admin default page
*/
Router::connect('/admin', array('controller' => 'profiles', 'action' => 'index', 'admin' => true, 'layout' => 'admin'));
我在/app/views/layouts/admin.ctp 也有一个布局
但是,当我访问管理 URL 时布局没有改变
最佳答案
创建一个 app/app_controller.php
并将其放入:
<?php
class AppController extends Controller {
function beforeFilter() {
if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
$this->layout = 'admin';
}
}
}
如果您在其他 Controller 中使用它,请不要忘记在您的 Controller 中调用 parent::beforeFilter();
。
与问题半相关,您不需要定义路由,您只需要启用 Routing.admin
配置选项并将其设置为 admin
在 app/config/core.php
。 (CakePHP 1.2)
关于php - 在 CakePHP 中更改管理布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180655/