情况/问题
我把所有记录都拉成一张桌子。我将返回的数据传递给我的视图。 Num_rows表示5,但结果集为空,尽管表中有记录。
控制器
public function index()
{
$this->load->model('Accessmodel', 'access');
$data['query'] = $this->access->get_access_roles();
$this->load->view('common/header');
$this->load->view('admin/access/index', $data);
$this->load->view('common/footer');
}
模型
class Accessmodel extends Cruddy {
function __construct()
{
parent::__construct();
self::$table = "EmployeeRoleAccess";
}
function get_access_roles()
{
return $this->db->get(self::$table);
}
}
cruddy的相关部分
class Cruddy extends CI_Model {
protected static $table;
function __construct()
{
parent::__construct();
}
function get_items()
{
$this->db->from(self::$table);
return $this->db->get();
}
视图
<div class="column-left">
<div class="sub-section-left">
<?php include_once APPPATH . 'views/admin/menu.php'; ?>
</div>
<div class="sub-section-left shadows">
<?php include_once APPPATH . 'libraries/minical.php'; ?>
</div>
</div>
<div class="column-right">
<div class="sub-section-right">
<h1>Employee Role Access Templates<input class="create right" type="button" name="" value="New Access Role" onClick=""></h1>
<?php var_dump($query) ?>
</div>
</div>
查询的var_dump
object(CI_DB_mysql_result)#19 (8) {
["conn_id"]=>resource(11) of type (mysql link persistent)
["result_id"]=>resource(19) of type (mysql result)
["result_array"]=>array(0) { }
["result_object"]=>array(0) { }
["custom_result_object"]=>array(0) { }
["current_row"]=>int(0)
["num_rows"]=>int(5)
["row_data"]=>NULL
}
答案 0 :(得分:2)
我忘记了结果是一个对象。我试图像数组一样访问它
echo $Result['Name'];
这就是为什么我使用var_dump($ Result)来查看变量中的内容。当我看到result_array为空时,我开始认为它没有返回数据......事实并非如此。我只是没有使用result_array返回数据所以当然它是空的!您可以使用codeigniter指定返回数据的方式,默认情况下是通过对象。
下面是我在视图中使用的代码示例,它确实有效。我不得不承认,今天早上写这段代码时我没有咖啡因......我道歉
if($query->num_rows() > 0) {
foreach($query->result() as $Result) {
echo $Result->Name . "<br />\n";
}
} else {
echo "There are no results!";
}