我很困惑,因为CodeIgniter的奇怪行为。我正在从模型中获取一些数据,并将其返回给控制器,并将该数据从控制器传递给视图。
控制器function index()
{
$data['details'] = $this->Mymodel->Get_Details();
$this->load->view('mypage',$data);
}
模型public function Get_Details()
{
$query = "
SELECT
*
FROM
tablename
";
$result = $this->db->query($query)->result();
return $result;
}
视图
<?php
print_r($details);
?>
问题是视图页面没有显示任何内容。如果我把print_r($data);
放到Controller
中,或者把print_r($result);
放到Model
中,结果就会显示出来。如果在select
中,*
被替换为单独的列名,那么输出将从Controller
传递到View
,并显示输出。
有任何机会有任何限制传递数据从控制器到视图?
Update:如果我使用print_r($details[0]);
或print_r($details[n]);
,结果将被打印。如果使用print_r($details);
,则页面只是空白。有什么问题吗?
在模型中试试
public function Get_Details()
{
$query = "
SELECT
*
FROM
tablename
";
$result = $this->db->query($query);
return $result->result();
}
您试过这段代码吗?
public function Get_Details()
{
$query = "
SELECT
*
FROM
tablename
";
return $this->db->query($query);
}
<<p> 视图/strong> <?php
print_r($details->result());
?>
result()函数以对象数组的形式返回查询结果,如果失败则返回空数组。
您需要在视图中循环遍历它以获得预期的结果。
您可以在这里查看详细信息:http://ellislab.com/codeigniter/user-guide/database/results.html