在帖子Codeigniter result_array() returning one row https://stackoverflow.com/users/315828/xbonez回答就像这样
function getAllUsers()
{
$rows = array(); //will hold all results
$query = $this->db->get('users');
foreach($query->result_array() as $row)
{
$rows[] = $row; //add the fetched result to the result array;
}
return $rows; // returning rows, not row
}
在您的控制器中:
$data['users'] = $this->yourModel->getAllUsers();
$this->load->view('yourView',$data);
在你看来
//在您的视图中,$ users是一个数组。迭代它
<?php foreach($users as $user) : ?>
<p> Your first name is <?= $user['fName'] ?> </p>
<?php endforeach; ?>
从控制器发起查询,查询结果在$data['users']
,但在视图中我们正在以$users
进行迭代。为什么会这样?
答案 0 :(得分:1)
在codeigniter(或者像cakePHP这样的mvc框架)中,我们在Controller中使用键和值构建数组。然后将其传递给变量查看。
因此RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
将转到视图并以$data['users']=array(key=>val)
进行访问。
仔细查看控制器中的所有变量键(例如echo $users['key']
这里用户是关键的)成为视图中的实际变量(例如$data['users']
),这就是我们称之为MVC结构的原因。
答案 1 :(得分:1)
如果您在控制器中设置,
$data['users'] = $this->yourModel->getAllUsers();
$this->load->view('users',$data); //first argument will be passed to view as $users
在您的视图中,您将调用参数
<?php foreach($users as $user) : ?>
<p> Your first name is <?= $user['fName'] ?> </p>
<?php endforeach; ?>
答案 2 :(得分:1)
只需检查loader.php
中的system/core
并找到"public function view"
,它就会回答您的问题。