1

我希望访问数据库一次,然后返回一个 MySQL 资源和一个数组。我的控制器中有以下代码来执行此操作:

$result = $this->data->my_method();

$data['result_resource'] = $result;
$data['result_array']    = $result->result_array();

在我看来,我正在调用以下内容:

$this->table->generate($result_resource);

当该$data['result_array']行被注释掉时,表格按预期工作(即显示列标题),但是当该$data['result_array']未被注释掉时,两者都将result_resourceANDresult_array转向数组。这里发生了什么,我该如何避免它?

$data 数组以典型的 CI 方式传递给视图:

$this->load->view('view.php', $data);

运行该方法两次确实可以解决问题,但我不想这样做。

4

1 回答 1

0

关于 result_array() 被“消耗”的这些东西是无稽之谈 - 它只是一个根本没有运行的对象。你可以一遍又一遍地使用它

我将您的代码放入控制器中 - 包括 table->generate() - 一切对我来说都很好。

$result 是包含连接资源等的基础对象,实际上不是您想要使用的。它之所以有效,是因为表库已设置好,因此如果您通过它,它会为您查找 result_array(),但这并不是真正的标准方式。

我认为您的代码中还有其他一些您已经看过的东西导致了麻烦。尝试摆脱 $result 代码,然后运行:

$result = $this->data->my_method();
$data['result_array']    = $result->result_array();
var_dump($data['result_array']);
echo $this->table->generate($data['result_array']);

并检查一切看起来正常。我怀疑你会在某个时候做面部护理:-)

于 2012-11-05T10:43:58.833 回答