首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在cakephp中实现多模板

如何在cakephp中实现多模板
EN

Stack Overflow用户
提问于 2013-01-23 14:53:55
回答 2查看 1.7K关注 0票数 2

我使用CakePHP框架,并且我希望在我的项目中有多个模板。

有没有办法在CakePHP中实现多个模板?

例如,管理员可以在后台选择第一个或第二个模板,用户可以使用相同的模板。(就像在Joomla后端)。如果有任何方法,我如何实现它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-23 16:42:35

我只是给你一个基本的概念,告诉你如何做到这一点。

在app_controller中,尝试下面的代码。

代码语言:javascript
复制
<?php
class AppController extends Controller
{
    var $components = array( 'Auth','Session', 'RequestHandler','Email','Gzip.Gzip','SwiftMailer');

    var $helpers = array( 'Javascript', 'Form', 'Html', 'Session','Time','Custom','Paginator','Text' );

    function beforeFilter()
    {
        if(isset($this->params['admin']) && $this->params['admin'] == 1)
        {
            $this->layout = "admin";
        }
        else
        {
            $this->layout = "default";
        }       
    }
?>

在扩展app_controller add的其他控制器文件中,你必须有如下代码。

代码语言:javascript
复制
<?php
class OtherController extends Controller
{
    var public $uses = array('ModelName');

    function beforeFilter()
    {
        parent::beforeFilter();
    }
?>

您还可以将 $this->layout 覆盖到每个控制器操作。

票数 5
EN

Stack Overflow用户

发布于 2013-01-23 16:44:31

可以在View/layouts中创建不同的模板

不同风格的template_1.ctptemplate_2.ctp

并创建将包括现有模板之一的default.ctp布局或在AppController中设置$this->layout = 'template_1';

代码语言:javascript
复制
<?php
    //default.ctp
    $loadTemplate = 'template_1.ctp';//value from database or config file?
    include_once($loadTemplate);
?>

或者,您可以按照documentation使用主题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14474023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档