为视图分配变量的正确方法是什么?
$data['users'] = $this->users_model->get_all();
$this->load->view('users', $data);
// and inside users.php view: foreach($users as $user) {}
OR
$this->users = $this->users_model->get_all();
$this->load->view('users');
// and inside users.php view: foreach($this->users as $user) {}
是否存在针对此类情况的一般规则?
答案 0 :(得分:5)
第一种方法比第二种方式好得多,是将变量传递给视图的可接受方式。
例如,假设您有两个观点。第一个视图显示系统中的所有用户,第二个视图显示当前登录的用户。两个视图循环遍历$users
变量并输出其名称。使用第二种方法,您必须在加载每个视图之前将适当的数据分配给$this->users
。必须在给定请求的所有已加载视图之间使用唯一变量名称将失控。
此外,一些观点可能变得相当复杂。将视图中所需的每个变量分配给控制器的属性是没有任何意义的。