我刚刚开始使用CodeIgniter,我想知道如果我把这样的代码放在循环中会减慢速度。
$data['title'] = 'the title';
$data['content'] = 'blah blah blah';
$this->load->view('result', $data);
我不完全确定CodeIgniter如何处理事情,或者PHP本身。例如,如果我这样做。是否会在每次迭代时读取文件?
$data['title'] = 'the title';
$data['content'] = 'blah blah blah';
include 'result.php';
也可以在循环中加载控件,或者通过将控件放在循环中我缺少一些基本的东西?感谢。
其他信息。 我有用户个人资料的搜索结果...我正在考虑在搜索结果页面上显示简介视图的精简版本。使用视图是不好的做法?
答案 0 :(得分:3)
我不建议您从您的视图中调用您的模型。在尝试遵守MVC框架标准时,这不是最佳实践。从控制器调用模型,并将“users”数组作为$ data的一部分传递给视图。现在,您可以在视图中作为变量访问$ users数组。与您所拥有的类似,但这可以将模型访问回控制器。
控制器
$data['title'] = 'the title';
$data['content'] = 'blah blah blah';
$data['users'] = $this->user_model->get_users();
$this->load->view('result', $data);
查看
<?php foreach ($users as $user) {
echo '<p>' . $user->first_name . '</p>';
echo '<p>' . $user->last_name . '</p>';
}?>
答案 1 :(得分:2)
考虑将循环从控制器移动到视图文件(在控制器上,您必须在加载视图文件之前准备所有数据)。您将只有一个加载视图文件的调用,并且在视图文件中,您可以根据需要在循环周期中打印出信息。
答案 2 :(得分:2)
在视图中循环。
<div>
<?php foreach ($this->user_model->get_users() as $users): ?>
<p><?php echo $user->first_name;?></p>
<p><?php echo $user->last_name;?></p>
<?php endforeach; ?>
</div>
此示例直接从模型中获取数据,该数据已多次在codeigniter论坛中讨论过。