-
[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();
'프로그래밍 > CodeIgniter' 카테고리의 다른 글
[CodeIgniter] 다수의 데이터베이스(Database) 사용하기 (1) 2018.05.27 [CodeIgniter] 데이터베이스(Database) 시작하기 (2) 2018.04.22 [CodeIgniter] 뷰 (Views) (2) 2018.03.05 [CodeIgniter] 기본 컨트롤러 설정 (Default Controller) (0) 2018.02.08 [CodeIgniter] index.php 제거 (2) 2018.02.07