我无法获取两个表并将它们传递给控制器:
在模特中:
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
变量返回给控制器?我想我做错了。
答案 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);