CakePHP:为后端和前端提供不同的布局文件

时间:2014-08-23 19:09:05

标签: cakephp layout routing frontend backend

是否可以在应用中使用2个不同的布局文件>视图>布局文件夹。我问这个的原因是我已经有了我的后台,但不知道如何继续制作前台的结构。

我的后台视图的路由使用前缀admin并使用default.ctp作为布局。我实际上希望该文件是admin_default.ctp所以我可以使用default.ctp作为我的前台视图。

我现在的问题是如何分隔这些布局文件。我想要实现的是一些控制器/视图使用default.ctp(前端),而其他控制器/视图使用admin_default.ctp(后退)。这是一个好方法还是考虑替代方案更好?

2 个答案:

答案 0 :(得分:2)

只需使用$this->layout在控制器中指定自定义布局。

article可能对您的问题有用

答案 1 :(得分:1)

在AppController的beforeFilter中,只需检查它是否为管理员前缀,并相应地设置布局:

class AppController extends Controller {

public function beforeFilter() {
    if($this->params['prefix'] == 'admin' && $this->name !== 'CakeError') {
        $this->layout = "admin"; // set the layout
    }
}

//...

确定管理员之后你可以做的另一件好事就是强制使用SSL(通常是后端的好主意):

$this->Security->requireSecure();  // inside the above if block