ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CodeIgniter] 모델 (Models)
    프로그래밍/CodeIgniter 2018. 4. 8. 18:01

    ▶CodeIgniter 모델 (Models)



    ▶설명


    이제 MVC 모델에서 모델(Models)에 대해 알아보도록 하겠습니다.


    모델(Models)은 데이터베이스와 연동해서 사용하기 위한 클래스입니다. [참고]

    간단하게 생각하면 데이터베이스와 관련된 동작은 전부 모델에 모아둔다고 생각하시면 됩니다.


    이번에는 데이터베이스 연결은 다음에 진행하지 않겠습니다.

    일단 모델을 기본적인 모델 생성 방법과 모델을 사용하는 방법만 알아보도록 하겠습니다.


    ▶예제 (Example)


    간단하게 members라는 배열에 존재하는 값을 반환하는 매서드를 만들도록 하겠습니다.


    모델 생성 (Creating a Model)

    application/models/Member_model.php

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
     
    class Member_model extends CI_Model {
     
        public function __construct()
        {
            parent::__construct();
        }
    
        private $members = array(
            '1' => 'Edward',
            '2' => 'Alex',
            '3' => 'John'
        );
    
        public function GetMembers()
        {
            return $this->members;
        }
    }
    • 2번째줄 : Model에 비정상적인 접근을 방지해주는 코드이그나이터에 기본 코드입니다.
    • 4번째줄 : 클래스명은 파일의 이름과 같아야합니다. 그리고 클래스는 CI_Model을 상속받아야 합니다.
    • 6~9번째줄 : Member_model 클래스의 생성자입니다. (모델을 생성할 때 생성자는 추가해주도록 합시다.)
    • 11~15번째줄 : 데이터를 데이터베이스에서 가져오는 것을 대체하기 위한 배열 값입니다.
    • 17~20번째줄 : members 배열에 존재하는 값을 반환해주는 매서드입니다.


    모델 로딩하기 (Loading a Model)

    application/controllers/Tutorial.php

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
        
    class Tutorial extends CI_Controller {
        
        // ... 기존 예제 코드들은 생략하겠습니다.
        public function members()
        {
            $this->load->model('Member_model');
            
            $data['members'] = $this->Member_model->GetMembers();
    
            $this->load->view('Tutorial/members', $data);
        }
    }
    • 9번째줄 : 모델을 로드합니다.
    • 11번째줄 : 모델에 GetMembers 매서드를 사용합니다.
    • 13번째줄 : 모델에서 가져온 값을 뷰에 전달합니다.


    뷰 생성 (Creating a view)

    application/views/Tutorial/members.php

    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Member</title>
    </head>
    <body>
        <table>
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Name</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach($members as $id => $name) :?>
                    <tr>
                        <td><?=$id?></td>
                        <td><?=$name?></td>
                    </tr>
                <?php endforeach ?>
            </tbody>
        </table>
    </body>
    </html>
    • 17~21번째 : foreach를 사용하여 모델에서 가져온 데이터를 출력합니다. (위에서 사용하는 foreach는 코드이그나이터에서 제공하는 대체 foreach문법입니다.)


    확인

    http://localhost/ci/Tutorial/Members



    ▶모델 로딩하기 (Loading a Model)


    여기서 모델은 위에서 만든 Member_model을 기준으로 설명합니다.


    기본적인 모델 로딩 및 사용

    $this->load->model('Member_model');
    $this->Member_model->GetMembers();


    하위 폴더에 위치한 모델 로딩 및 사용

    $this->load->model('Tutorial/Member_model');
    $this->Member_model->GetMembers();


    모델 로딩 및 별칭으로 사용

    $this->load->model('Member_model', 'Members');
    $this->Members->GetMembers();



    댓글

Designed by Tistory.