카테고리 없음
CodeIgniter 모델 (Models)
광82
2023. 7. 12. 11:29
반응형
설명
이제 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();
반응형