显示数据中,从controller传过来的数组问题
view层,getnews.php复制代码 [*][*] foreach($query->result() as $row)
这里的$query,看说明是从controller传过来的,但是controller中并没有这个结果集啊,
只有$data['query'],为何要把模板得到的值传到数组里面呢,而这个query也只是数组的一个元素啊。
为什么直接变量就不可以呢?
这是controller的情况
复制代码 [*]$data['query']=$this->GetNewsModel->getnews();[*]$this->load->view('viewnews',$data);
这里不是把$data数组传到view了么,那么view里面的$query是怎么来的呢?
望赐教! 实际上就是执行了 php 的 extract 函数 http://www.w3school.com.cn/php/func_array_extract.asp
否则你怎么通过一个方法传递所有数据到视图中呢? 理解不能
我现在的疑问就是
如果按照手册 $query=$this->db->query('SQL');
那么 foreach($query->result() as $row)
才会起作用
但是这个例子,却是 $data['query'],传递$data数组到view,而实际执行的却是数组元素query -_- extract 这个函数你知道是做什么的吧?
现在很简单,就是把 $data['query'] 变成了 $query = '';
你还可以 $data['title'] 变成 $title = ''; 等等很多。
$query=$this->db->query('SQL');
foreach($query->result() as $row)
这个和视图传递数据无关, $data['query'] = $query 就不可以吗?但如果不用 $data['query'] 是不可以的,这是 CI 规定。
其中的 query 是举例,你换成 a b c 都行,看你个人喜好。 好的 大概 明白鸟!!:kiss:
页:
[1]