如何在Codeigniter的一个功能控制器中调用2个模型功能

时间:2019-03-20 03:50:03

标签: php codeigniter

我是Codeigniter的新手,所以请帮助我解决问题。

我想在一个函数控制器中调用两个模型函数。这是我的两个模型函数:

public function getposts($postid){
    $this->db->select('*');
    $this->db->from('tbl_endangered');
    $this->db->where(['endangeredid'=>$postid]);
    $query = $this->db->get();
    return $query->result();
}

public function getSinglePost($postid){
    $this->db->select('*');
    $this->db->from('tbl_images');
    //$this->db->join('tbl_images');
    $this->db->where(['endangeredid'=>$postid]);
    $query = $this->db->get();
    return $query->result();
}

这是我的功能控制器:

public function viewAnimals($postid){
    if(!$this->session->userdata("id") )
        return redirect("AuthCon/login");

    $this->load->model('Show');
    $posts = $this->Show->getSinglePost($postid);
    //$posts = $this->Show->getposts($postid);
    $this->load->view('Showimage',['posts'=>$posts]);
}

在上面的代码中,我总是得到我声明的第一个代码。我想在函数viewAnimals控制器中获取getposts和getSinglePost。

希望您能帮助我。预先感谢

2 个答案:

答案 0 :(得分:1)

我认为使用相同的变量名会造成混乱。 您可以尝试将其分配给包含输出的posts数组。

$this->load->model('Show');
$posts['getSinglePostData'] = $this->Show->getSinglePost($postid);
$posts['getPostsData'] = $this->Show->getposts($postid);
$this->load->view('Showimage',$posts);

答案 1 :(得分:0)

在控制器中执行此操作

public function viewAnimals($postid){

  if(!$this->session->userdata("id"))
      return redirect("AuthCon/login");

  $this->load->model('Show');
  $data['images'] = $this->Show->getSinglePost($postid);
  $data['endangered'] = $this->Show->getposts($postid);
  $this->load->view('Showimage', $data);
}

另一种方法是使用join()并且仅使用一个模型函数

public function getSinglePost($postid){

  $this->db->select('*');
  $this->db->from('tbl_images');
  $this->db->join('tbl_endangered', 'tbl_endangered.endangeredid = tbl_images.endangeredid');
  $this->db->where('tbl_images.endangeredid', $postid);
  return $this->db->get()->result();
}