2015-10-27 12 views
0

我創建了一個名爲MY_Model的擴展了CI_Model的核心類。在這個類中,我創建了一個方法鏈接來獲取所有紀錄分頁這樣的:用於在CI上分頁的連接表的方法鏈3

// Take record with paging. 
public function get_all_paged() 
{ 
    // get argument that passed 
    $args = func_get_args(); 

    // get_all_paged($offset) 
    if (count($args) < 2) { 
     $this->get_real_offset($args[0]); 
     $this->db->limit($this->_per_page, $this->_offset); 
    } 

    // get_all_paged(array('status' => '1'), $offset) 
    else { 
     $this->get_real_offset($args[1]); 
     $this->db->where($args[0])->limit($this->_per_page, $this->_offset); 
    } 

    // return all record 
    return $this->db->get($this->_tabel)->result(); 
} 

所以,我只是用這樣我的控制器上, 例如

public function index($offset = NULL) { 
    $karyawan = $this->karyawan->get_all_paged($offset); //get all 

} 

我真的混淆得到所有記錄使用加入,我知道加入像這樣的CI:

public function get_all_karyawan() { 


    $this->db->select('tb_1 , tb_2'); 
    $this->db->from('tb_1'); 
    $this->db->join('tb_2', "where"); 
    $query = $this->db->get(); 

    return $query->result(); 
} 

如何使它成爲在MY_Mode鏈L·

任何幫助這麼感激...

回答

1

查詢生成器的好處,你可以鏈接你的db方法,直到get()。所以你可以用不同的方式定義,選擇查詢的位置。

例如:

public function category($category) 
{ 
    $this->db->where('category_id', $category); 
    return $this; 
} 

public function get_posts() 
{ 
    return $this->db->get('posts')->result(); 
} 

,你可以得到的所有帖子:

$this->model->get_posts();

或按類別:

$this->model->category(2)->get_posts();

所以在這一點,在你的模型:

public function get_all_karyawan() { 
    $this->db->select('tb_1 , tb_2'); 
    $this->db->join('tb_1', "where"); 
    // Here you make able to chain the method with this 
    return $this; 
} 

在你的控制器:

public function index($offset = NULL) { 
    $karyawan = $this->karyawan->get_all_karyawan()->get_all_paged($offset); 
} 
+0

感謝您的很好的解釋,但它給我的錯誤這樣的錯誤編號:1066 不是唯一的表/別名:「tb_karyawan」 –

+0

很抱歉,但我只是解釋鏈接,那是你的問題。你必須改變這個'$ this-> db-> join('tb_1',「where」)',這是不正確的,因爲你正在將自己加入到表中。而錯字也是不正確的。閱讀更多關於這裏加入:http://www.codeigniter.com/user_guide/database/query_builder.html – Iamzozo

+0

謝謝,我再次閱讀文檔,如果加入,刪除this-> db->從(),這就是問題所在。再次感謝。 –