更改 default.ctp 中的特定 class

Changing specific class in default.ctp

下面是我的 default.ctp 文件。我的问题是我该如何改变 class="post-content" 来自另一个视图或页面?

   <main class="main-content">
          <div class="post-content"> 
            <?php echo $this->Session->flash(); ?>
            <?php echo $this->fetch('content'); ?>  
          </div>            
   </main>

在您的布局中,您可以更改静态 class 以包含如下所示的简单 if/else 语句:

<main class="main-content">
    <div class="<?php echo (isset($layout_class_var)) ? $layout_class_var : 'post-content'; ?>"> 
        <?php echo $this->Session->flash(); ?>
        <?php echo $this->fetch('content'); ?>  
    </div>            
</main>

然后每次你想设置一个新的class名称来代替默认的classpost-content,只需设置将所需的 class 名称放入控制器操作中的 $layout_class_var 变量中:

public function someAction() {
    //set layout class to 'new-layout-class'
    $this->set('layout_class_var', 'new-layout-class');
}