将变量分配给视图

don*_*ong 0 variables codeigniter views

将变量分配给视图的正确方法是什么?

$data['users'] = $this->users_model->get_all();
$this->load->view('users', $data);
// and inside users.php view: foreach($users as $user) {}
Run Code Online (Sandbox Code Playgroud)

要么

$this->users = $this->users_model->get_all();
$this->load->view('users');
// and inside users.php view: foreach($this->users as $user) {}
Run Code Online (Sandbox Code Playgroud)

这种情况是否有一般规则?

bir*_*ric 5

第一种方法比第二种方法好得多,是将变量传递给视图的可接受方式.

例如,假设您有两个视图.第一个视图显示系统中的所有用户,第二个视图显示当前登录的用户.两个视图循环$users变量并输出其名称.使用第二种方法,您必须$this->users在加载每个视图之前分配适当的数据.必须在给定请求的所有加载视图之间使用唯一变量名称将失控.

此外,一些观点可能变得非常复杂.将视图中所需的每个变量分配给控制器的属性是没有意义的.