【问题标题】:Cakephp, adding a view to a sidebarCakephp,将视图添加到侧边栏
【发布时间】:2014-04-04 20:19:12
【问题描述】:

我正在努力理解 cakephp 的视图、块和布局。

我需要每个页面都显示一个左右侧边栏,哪些内容可能会改变。目前,我在 /pages/home.ctp 中定义了右侧边栏,但我猜测扩展该边栏会更好,因为它必须出现在每个页面中。如果这个想法是错误的,请纠正我。

然后,我为“usuarios”表提供了这个视图add.ctp,它实际上显示了登录名和密码字段。我想在侧边栏中显示这个视图,但我真的不知道该怎么做。

提前致谢。

【问题讨论】:

    标签: php html cakephp view sidebar


    【解决方案1】:

    让这件事变得简单。正如@patrick 所说,有很多方法。

    从布局文件开始。重新排列你的 default.ctp 布局,如-

    default.ctp 布局

    <div id="container">
        <div id="header">
            <?php echo $this->element('header');?>
        </div>
    
        <div id="left-sidebar">
          <?php echo $this->element('left-sidebar');?>          
        </div>
    
        <div id="content">    
            <?php echo $this->Session->flash(); ?>    
            <?php echo $this->fetch('content'); ?>
        </div>
    
        <div id="right-sidebar">
            <?php echo $this->element('right-sidebar');?>           
        </div>
    
        <div id="footer">
               <?php echo $this->element('footer');?>
        </div>
    </div>
    

    现在创建元素 ctp 文件为 header.ctp、left-sidebar.ctp、right-sidebar.ctp 等并将它们放置到app/View/Elements

    您的 left-sidebar.ctp 文件可能如下所示...

    left-sidebar.ctp

        // to show login form //
    if you just need to show on view.ctp place few logic here for login form.
    //end login form//
    
    show other sidebar contents
    

    【讨论】:

      【解决方案2】:

      有几种方法可以做到这一点,具体取决于您的 Cake 版本。如果您使用 >=2.1(我假设您是因为您询问了块),那么您应该尝试这些以查看它们是否适用于您的设置。我通常做事的方式是,如果控制器的所有视图都需要公共标记,那么这些视图文件将扩展控制器目录中的基本视图,例如

      #/View/Posts/index.ctp
      <?php
          $this->extend('_skel'); //arbitrary filename, I use '_skel' since that makes sense
          echo $this->Html->para(null, 'Hello');
      
      #/View/Posts/_skel.ctp
      <?php
          echo $this->Html->div('sidebar', 'Sidebar for posts...');
          echo $this->fetch('content'); // This gets all output from the Posts/index.ctp view
      

      那么你所有扩展 _skel 的帖子视图都会自动拥有侧边栏。

      您的登录模块可能作为一个元素有意义 - 可以在您的视图中的任何位置使用。

      【讨论】:

        猜你喜欢
        • 2011-04-14
        • 1970-01-01
        • 2011-06-18
        • 1970-01-01
        • 2020-11-26
        • 1970-01-01
        • 2019-04-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多