沿着这条线的东西?
$data['post'] = $this->load->view('post',$data, TRUE);
该'TRUE'
参数告诉 CI 调用您的视图并将其放入$data['post']
变量中。稍后您可以在另一个视图中使用该变量并将其打印出来。
编辑:
我不确定你是如何组织你的控制器和视图的,但可以这样说。这只是一个例子:
控制器
public function comments() {
$data['comments'] = $this->comments_model->get_all_comments();
$data['someVariable'] = 123;
$this->load->view('header', $data); //load header view
$data['sidebar'] = $this->load->view('sidebar', $data, TRUE); //put sidebar view in a variable, but don't show it immediately
$this->load->view('comments', $data); //load comments view
$this->load->view('footer'. $data); //load footer view
}
每当您传递$data
给控制器时,您都会将整个$data
数组传递给该视图,以便您可以访问视图中的所有元素。
例如,在您的 comments.php 视图中,您将拥有$comments
,$someVariable
和$sidebar
变量,因此您可以对它们做任何您想做的事情。
在 comments.php 中你可能会有这样的东西:
评论.php
<div id="comments">
<?php
foreach($comments as $c){ //print out all found comments
?>
<div class="comment">
<?= $c['commentauthor'] ?> <br />
<?= $c['commenttext'] ?>
</div>
<?php } ?>
</div>
<div id="sidebar">
<?= $sidebar ?> //print out sidebar
</div>
<p> This is some variable: <?= $someVariable ?> </p>
这些相同的变量在页脚视图中可用,因为您已将 $data 传递给该视图
$this->load->view('footer'. $data);
我希望这能让你更清楚一点。