我想从数据库中获取数据并使用CodeIgniter将其显示在网页上 . 我将控制器,模型和视图编码如下 .
控制器;
//HomeController
<?php
class HomeController extends CI_Controller
{
public function index()
{
$this->load->model('HomeModel');
$data['records'] = $this->HomeModel->getData();
$this->load->view('HomeView',$data);
}
}
?>
模型;
//HomeModel
<?php
class HomeModel extends CI_Model
{
public function getData()
{
$query = $this->db->query('SELECT * FROM data');
return $query->unbuffered_row('object');
}
}
?>
视图;
//HomeView
<?php
echo "Recoeds from database<br>";
while($records)
{
echo $records->name." ".$records->age."</br>";
}
?>
但是这段代码不会在屏幕上打印任何内容 . ( echo "Records from database<br>";
)
所以我尝试了CodeIgniter文档中给出的以下代码,并在模型本身中回显结果,而不是将其返回到控制器,然后返回到视图 . 它工作正常 .
//HomeModel
<?php
class HomeModel extends CI_Model
{
public function getData()
{
$query = $this->db->query('SELECT * FROM data');
while ($row = $query->unbuffered_row())
{
echo $row->name;
echo $row->age;
}
}
}
?>
我的问题是我们如何将 unbuffered_row()
方法的结果返回到控制器中,然后根据MVC架构返回到视图?我们可以通过在模型本身回显结果来获得输出,但它违背了MVC架构的目的 .
3 回答
您应该使用
return $query->result();
,然后在视图或控制器中获取正确的对象(由您决定) .试试这一个
调节器
模型
视图
我在本地模拟你的代码 . 你的错误就在这里 . $ records是对象 . 你的while循环没有离开循环的条件