如何从视图查询数据库 - CodeIgniter

Adn*_*nan 4 php codeigniter

我有在控制器中运行的查询:

$data['query'] = $this->Member->select_sql($id);    
$this->load->view('myform');
Run Code Online (Sandbox Code Playgroud)

然后在视图中输出数据:

foreach ($query->result() as $row):
   echo $row->post_title;
   echo $row->post_user_id;
endforeach;
Run Code Online (Sandbox Code Playgroud)

所以这会输出一个用户发布的帖子列表.现在我想再运行一个查询,通过我的用户表循环每个帖子,并在每个帖子旁边输出用户信息.(我不想在视图中选择数据或在MySQL中此时联合这两个表)

有任何想法吗?

Mih*_*TEI 6

虽然这不是一个好习惯,但"最干净"的方法如下:

  • 在View中抓取CI实例
  • 加载包含所需数据提取查询函数的模型
  • 从视图中的模型运行该函数

所以,在视图中:

$CI =& get_instance();
$CI->load->model('modelname');
$result = $CI->modelname->functionname();
var_dump($result);
Run Code Online (Sandbox Code Playgroud)

经过测试和工作.


Gor*_*don 5

将数据库适配器或适当的表对象注入View.

从上面的代码中,我假设这将是

$data['userModel'] = $this->User;
Run Code Online (Sandbox Code Playgroud)

然后从那里使用它来运行您的查询,例如

$user = $userModel->select_sql($row->post_user_id);
Run Code Online (Sandbox Code Playgroud)