0

CodeIgniterとMVC/OOPも初めてです。私が解決しようとしている私の現在の問題は、2つのテーブルに関係しています。


ギャラリーテーブル

id

名前

クライアントID


クライアントテーブル

id

名前


gallery['clientID']はclient['id']を参照しているので、名前を取得できます。現在、私のgallery_model.phpファイルは次のようになっています。

class Gallery_model extends CI_Model
    {

        public function __construct()
        {
            $this->load->database();
        }

    //Get all in progress galleries from client
    public function get_progress($id = FALSE , $clientRef = '205')
    {
        if($id == FALSE) {
            $query = $this->db->get_where('gallery', array('clientRef' => $clientRef, 'finish' => '0' ));
            return $query->result_array();
        }
    }
    //Get all proofed galleries from client
    public function get_proofed($id = FALSE , $clientRef = '205')
    {
        //get all galleries from client
        if ($id == FALSE) {
            $query = $this->db->get_where('gallery',array('clientRef' => $clientRef, 'finish' => '1'));
            return $query->result_array();
        }
    }

    //get the gallery selected
    public function get_gallery($id , $clientRef = '205')
    {
        //This returns individual galleries
        $query = $this->db->get_where('gallery', array('id' => $id));
        return $query->row_array();
    }
}

私のコントローラーは次のようになります:

    public function index()
    {
        //Proofed Albums
        $data['gallery'] = $this->gallery_model->get_proofed();
        //Albums that are in progress
        $data['in_progress'] = $this->gallery_model->get_progress();

        $this->load->view('templates/header',$data);
        $this->load->view('gallery/index',$data);
        $this->load->view('templates/footer');
    }

次に、ビューの出力は

$gallery['name'] - $gallery['clientId']

このようなもののベストプラクティスは何ですか。おそらく簡単だと思いますが、これを正しく行うことから始めたいと思います。使用する必要があります$this->db->join();

これについての助けを事前に感謝します。

4

2 に答える 2

1

を使用する$this->db->join()ことは、複数のテーブルからすべて 1 つのクエリで情報を取得するための最良の (そして独自の SQL を追加せずに Active Records を介して行う唯一の方法) 方法です。

おそらくすでにお気付きだと思いますが、念のため (そして将来このページを訪れる人のために)、CodeIgniter ユーザー ガイドには Active Records の使用方法を詳しく説明したすばらしいページがあります。

あなたの目的には、内部結合のデフォルトで問題ありません。クライアントがリンクされていないギャラリー エントリがあり、それらを結果に含めたい場合は、ここで読むことができる他のタイプの結合を検討することをお勧めします。

于 2012-11-24T01:20:26.907 に答える