【问题标题】:codeigniter sidebar problemcodeigniter 侧边栏问题
【发布时间】:2011-09-04 10:22:21
【问题描述】:

我想将一些数据传递到我的侧边栏,但我不知道如何做最佳实践,

我有一个这样的模板文件:

<?php

$this->load->view('include/header');

$this->load->view($main_content);

$this->load->view('include/footer');

?>

我制作了一个这样的帮助文件:

<?php


    //Getting all the Reviews and put them on the includes/header.php 
    function sidebar()
    {
        //Get the instance of the framework
        $CI=& get_instance();


        //Getting data from sidebarModel
        $CI->load->model('sidebar_model');
        $sidebarData = $CI->sidebar_model->getSidebarReviews();

        return $sidebarData;
    }

然后我想我需要转到我的 header.php 文件并在那里做一些事情以在 foreach 中获取数据,但我不知道如何。

希望有人能帮帮我

最好的问候辛

【问题讨论】:

    标签: php codeigniter frameworks helper


    【解决方案1】:

    将数据作为数组传递

    $data['mykey']='myvalye';
    $this->load->view('include/header',$data);
    

    然后在视图中简单地echo $mykey

    您可以传递多个数据,例如$data['sidebar']='mysidebar';,如果您仍然不清楚,请在下方评论。

    更多http://codeigniter.com/user_guide/general/views.html滚动到“添加动态数据到视图”

    编辑 保持帮助器与您在问题中描述的相同。

    在控制器中写入

    $data['sidebarRow']=sidebar();
    $this->load->view('template',$data);
    

    在视图中写这个

    echo $sidebarRow;
    

    【讨论】:

    • 这样吗? pastebin.com/npnRKqf2echo $sidebarRow;它说未定义的变量:sidebarRow
    • 首先,$this 在 Helper 中不起作用。好吧,我已经编辑了答案。
    【解决方案2】:

    您可以加载变量,以便它们在您的所有视图和子视图中成为全局变量。

    只要有任何数据要在视图中全局使用,就使用 $this->load->vars($data_array)。

    此方法可以在您的应用程序中的任何位置多次使用,并将合并您添加的任何数据。

    在http://codeigniter.com/user_guide/libraries/loader.html ($this->load->vars) 了解更多信息

    【讨论】:

      【解决方案3】:

      另一个答案是自动加载你的侧边栏助手,然后在你的视图文件中调用它(你的标题?!)

      $rows = sidebar();
      foreach($rows as $row):
        // Do something with your sidebar row
      endforeach;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-13
        • 2013-10-16
        • 2017-03-14
        • 1970-01-01
        • 2015-10-17
        • 2014-10-15
        • 1970-01-01
        相关资源
        最近更新 更多