Model(2/5) - 리스트와 각 리스트 정보 구현

2015. 9. 4. 18:21Programming/CodeIgniter

반응형

- 리스트를 보여주고 각 리스트에 대한 정보를 보여준다.


* models/topic_model.php

class Tablename_model extends CI_Model {

    function __construct() {   //method 를 초기화

        parent::__construct();

    }


   public function gets() {

       return $this->db->query('SELECT id,name from tablename')->result();

   }


   public function get($topic_id) {

        return $this->db->get_where('tablename',array('id'=>$topic_id))->row();

//    get_where는 active record라는 방식이라 함. 아래 쿼리와 동일하다고 함.

//    get_where 의 첫번째 인자는 테이블명, 두번째 인자의 id는 컬럼명임.

//    return $this->db->query('SELECT * from tablename where id = $topic_id')->row();

//    active record 방식의 장점은 DB의 인식성이 좋음.

   }


active record 방식을 사용하였을 때 특정 컬럼만 가져오고 싶다면, 아래와 같이 기술하면 된다.

$this->db->select('id');

$this->db->select('name');

$this->db->select(substr('chardate',1,4) chardate);

return $this->db_get_where('tablename',array('id'=>$topic_id))->row();



* controller/topic.php

function index() {

    $this->load->database();

    $this->load->model('topic_model');  //topic_model.php 파일을 불러오겠다.

    $data=$this->topic_model->gets();  //topic_model.php 의 gets라는 method를 사용하여 $data에 넣겠다.


    $this->load->view('main',array('topics'=>$data));

}


function get($id) {

    $this->load->database();

    $this->load->model('topic_model');

    $topic=$this->topic_model->get($id);


    $this->load->view('get',array('topic'=>$topic));  //기존 $id에서 $topic 값을 가져오는 것으로 수정.


}


* views/get.php

 This is get page.

<article>

    <h1><?=$topic->id?></h1>

    <div><?=$topic->name?></div>

</article>



다음에는 현재 구현한 소스를 가지고 간결화 하는 작업을 할 것이다.

model 수업을 들으면서 머리가 많이 복잡해지기 시작했다.


어떤 흐름인지는 알겠는데, 정리가 되지 않는 찝찝함?

동영상 강의를 반복적으로 듣다가 잊지 않기 위해 블로그에 글을 적어본다.

담주에 보게 되면 또 기억할 수 있을지가 의문이네 ㅠㅠ

반응형

'Programming > CodeIgniter' 카테고리의 다른 글

Model(4/5) - 각 리스트 정보 페이지마다 전체리스트 생성 구현  (0) 2015.09.07
Model(3/5) - 소스 중복제거  (0) 2015.09.07
Model(1/5) - 설정 및 사용  (0) 2015.09.04
View  (0) 2015.09.04
Controller  (0) 2015.09.04