0

我无法获取两个表并将它们传递给控制器​​:

在模型中:

function get_all_entries() {
$query = $this->db->get('entry');
return $query->result();
$this->db->select('entry_id , count(comment_id) as total_comment');    
$this->db->group_by('entry_id');
$comment = $this->db->get('comment');
return $comment->result(); 
}

在控制器中:

$data['query'] = $this->blog_model->get_all_entries(); 
$this->load->view('blog/index',$data);

如何将$query变量返回$comment给控制器?我想我做错了。

4

2 回答 2

2

使用这个是因为你不允许在同一个方法中返回两次

function get_all_entries() 
{
    $query  = $this->db->get('entry');
    $data[] = $query->result();

    $this->db->select('entry_id , count(comment_id) as total_comment');    
    $this->db->group_by('entry_id');
    $comment = $this->db->get('comment');
    $data[] =   $comment->result(); 
    return $data;
}

编辑:

在控制器中

function index(){
    $this->load->model('mymodel');
    $result = $this->mymodel->get_all_entries();
    $entries = $result[0] ;
    $comments = $result[1] ;

    $data['entries'] =  $entries;
    $data['comments '] =  $comments;

}
于 2012-09-04T10:34:57.713 回答
1

您的问题是您$query->result()首先返回,return函数暂停当前函数,因此未处理后续步骤。

最好的方法是为$queryget 和$commentget 创建两种方法。

您的问题的替代方案是

function get_all_entries() {
    $query = $this->db->get('entry');
    $this->db->select('entry_id , count(comment_id) as total_comment');    
    $this->db->group_by('entry_id');
    $comment = $this->db->get('comment');
    return array($query->result(),$comment->result()); 
}

然后在你的控制器中

list($data['query'],$data['comment']) = $this->blog_model->get_all_entries();
$this->load->view('blog/index',$data);
于 2012-09-04T09:40:00.303 回答