【问题标题】:MVC for footer-header-sidebar at codeigniter用于 codeigniter 的页脚-页眉-侧边栏的 MVC
【发布时间】:2010-12-14 14:34:19
【问题描述】:

我使用 codeigniter。我有用于 aboutus、contactus 等页面的 footer_view.php、header_view.php 和其他视图 php 文件……例如,对于关于我们的页面,我为 db 操作创建模型,而不是创建一个控制器来获取 db 变量并发送变量对我们的看法为:

$this->load->view('aboutus/',$data);  

到目前为止一切都很好,但是当我需要在页脚从 db 获取数据时,我将如何在 CodeIgniter Way 中使用?

如果我创建了一个 footer_model,我无法创建 view('footer/'),因为它实际上是页面的一部分,而不是页面本身:/

【问题讨论】:

    标签: php codeigniter templates


    【解决方案1】:

    你可以使用 $this->load->vars($data);

    这将使所有数据对所有视图、footer_view.php、header_view.php 和任何其他视图都可用。

    $data['your_info'] = $this->user_model->get_info();
    $data['your_latest_info'] = $this->user_model->get_latest_info();
    $data['your_settings_info'] = $this->user_model->get_settings_info();
    
    $this->load->vars($data);
    
    $this->load->view('your_view');
    

    您可以并且将会像这样访问数据:

    你的“主要”观点

    <?php
    // your_view.php
    // this can access data
    $this->load->view('header_view');
    <?php foreach ($your_info as $r):?>
    <?php echo $r->first_name;?>
    <?php echo $r->last_name;?>
    <?php endforeach;?>
    $this->load->view('footer_view');
    ?>
    

    你的 header_view

    <?php
    // header_view.php
    <?php echo $your_latest_info->site_name;?>
    ?>
    

    你的 footer_view

    <?php
    // footer_view.php
    <?php foreach ($your_setting_info as $setting):?>
    <?php echo $setting->pages;?>
    <?php endforeach;?>
    ?>
    

    不需要任何模板库...

    【讨论】:

      【解决方案2】:

      我写了一篇关于这个http://joshhighland.com/blog/2008/11/09/how-i-do-layouts-and-views-in-codeigniter/的博文

      基本上,您希望在控制器中加载所有视图所需的所有数据。我使用一组数据元素,然后将其传递给布局视图。我的博客文章对此进行了更多解释,并显示了更多细节。这是我的控制器的示例。

      $this->load->model('search');
      
      $lastest_albums = $this->search->last_n_albumsAdded(10);
      $popular_songs = $this->search->popular_n_songs(10);
      $featuredAlbums = $this->search->getFeaturedAlbums();
      
      $body_data['featured'] = $featuredAlbums;
      $body_data['newest'] = $lastest_albums;
      $body_data['popular'] = $popular_songs;
      
      $layout_data['content_body'] = $this->load->view(’home/homePage’, $body_data, true);
      
      $this->load->view('layouts/main', $layout_data);
      

      【讨论】:

        猜你喜欢
        • 2017-09-24
        • 1970-01-01
        • 2015-08-22
        • 1970-01-01
        • 2013-02-21
        • 2016-06-26
        • 2023-03-16
        • 1970-01-01
        • 2013-07-22
        相关资源
        最近更新 更多