此查询显示此活动记录

时间:2012-09-04 09:35:16

标签: php codeigniter

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

在模特中:

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变量返回给控制器?我想我做错了。

2 个答案:

答案 0 :(得分: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;

}

答案 1 :(得分:1)

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

最好的方法是为$query get和$comment get创建两种方法。

您的问题的替代方案是

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);