Codeigniter CodeIngiter:在另一个视图中加载视图

Codeigniter CodeIngiter:在另一个视图中加载视图,codeigniter,codeigniter-2,Codeigniter,Codeigniter 2,我用的是CodeIgniter。我想在其他视图中加载视图。我该怎么做 示例: 假设我有一个叫做“评论墙”的“视图”。在CommentWall中,我需要一组“评论”视图。我在我的网站上使用“评论”视图 我该怎么做?CodeIgniter似乎只允许我按顺序加载视图,考虑到我在其他视图中使用可重用视图,这有点奇怪 我可以做一个$this->load->view('comment')CommentWall的我的视图内部?或者是否有其他方法使视图中包含可重用的视图?您可以很容易地做到这一点,只需从控制器加

我用的是CodeIgniter。我想在其他视图中加载视图。我该怎么做

示例:

假设我有一个叫做“评论墙”的“视图”。在CommentWall中,我需要一组“评论”视图。我在我的网站上使用“评论”视图

我该怎么做?CodeIgniter似乎只允许我按顺序加载视图,考虑到我在其他视图中使用可重用视图,这有点奇怪


我可以做一个
$this->load->view('comment')CommentWall的我的视图内部?或者是否有其他方法使视图中包含可重用的视图?

您可以很容易地做到这一点,只需从控制器加载主视图,例如
CommentWall

$this->load->view('CommentWall');
要在
CommentWall
视图中添加子视图,可以在
CommentWall
视图中添加以下行

$this->view('Comment');
例如,如果像这样从控制器加载
CommentWall
视图

$data['comments'][] = 'Comment one';
$data['comments'][] = 'Comment two';

// load the parrent view
$this->load->view('CommentWall', $data);
Comment one

Comment two
现在在
CommentWall
(父视图)中

foreach ($comments as $comment) {
    $this->view('Comment', array('comment' => $comment));
}
在您的
注释
(子视图)中

echo $comment . '<br />';
更新:Alos,。

试试看

class Main extends CI_Controller {

    function __construct()
    {
        parent::__construct();

        $data->comments =$this->load->view('comment');
            $this->load->vars($data);
    }
在每个视图中尝试

echo $comments;
只需将“Comment”VIE作为字符串加载到控制器中,并将其传递到“CommentWall”视图

您可以这样做:

//Controller:

public function load_comment_wall($param) {

       $comments_view = ""; //String that holds comment views

      //here load the comments for this wall as follows:
      //assuming $comment_ids is array of id's of comment to be put in this wall...
      foreach($comment_ids as $comment_id) {
          $temp = $this->load->view("comment",array('comment_id'=>$comment_id),TRUE);     //Setting last parameter to TRUE will returns the view as String
          $comments_view = $comment_views.$temp;
      }

      $data['comments'] = $comments_view;

      //load comment wall
      $this->load->view('comment_wall',$data);
}
//在注释墙视图中,添加以下行

echo $comments;

您可以这样做,您遇到了什么问题?最好在控制器中执行这些操作,这可能会有所帮助: