2

这两种方法有什么区别:

$data['content'] = $this->load->view('content', NULL, true); // the content of the page
$this->load->view('layout', $data); //putting the content inside the layout, this include header, footer etc...

   $this->load->view('top');
   $this->load->view('content', $data);
   $this->load->view('footer');

// 如果需要,这里可以加载更多视图,因此每个加载的视图都是分开的

我不知道这是否是最好的方法,但哪个更好用?或者如果你有更好的想法......

4

4 回答 4

3

这会将您的视图数据分配给 $mydata 并且不会在浏览器上呈现,第三个参数“TRUE”将执行此操作

$mydata = $this->load->view('content', NULL, true);

这将直接在浏览器上呈现您的视图

$data = array();
$this->load->view('layout', $data);

你的第二个选择是最好的方法

于 2013-03-01T11:31:11.653 回答
1

当你这样做时:

$data['content'] = $this->load->view('content', NULL, true);
$this->load->view('layout', $data);

您的视图内容被解析为字符串,因此您必须在布局视图内的某处回显 $content 变量。

当你这样做时:

$this->load->view('top');
$this->load->view('content', $data);
$this->load->view('footer');

您的视图被发送到浏览器,以便他可以呈现它。第二种是最好的方法。它使您的代码更易于理解、更快、更容易进行更改。

您可以在此处阅读有关视图的更多信息:http: //ellislab.com/codeigniter/user-guide/general/views.html

于 2013-03-01T12:00:16.990 回答
0
$this->load->view('top');
$this->load->view('content', $data);
$this->load->view('footer');

是更好的选择,因为执行时间更短且易于理解

于 2013-03-01T11:34:27.227 回答
0

这两种方法中的每一种都有其优势,具体取决于您使用它的方式。

当您进行常规页面加载时,最好的方法是:

$this->load->view('top');
$this->load->view('content', $data);
$this->load->view('footer');

当您对服务器执行 Ajax 调用并在客户端浏览器的 Div 上加载特定视图时,第二种方法非常有用:

$view = $this->load->view('subpage','',TRUE);
$data = array('content' => $view);

print json_encode($data);
于 2013-03-02T08:28:39.207 回答