모델 & 데이터베이스
CI4 Model 클래스를 이용한 데이터베이스 연동, CRUD, Entity를 알아봅니다.
1
Model 기본 구조
Model 클래스에 테이블 정보, 허용 필드, 유효성 검사 규칙을 선언하면 CRUD 메서드를 자동으로 사용할 수 있습니다.
app/Models/PostModel.php
class PostModel extends Model
{
protected $table = 'posts'; // DB 테이블명
protected $returnType = Post::class; // Entity 클래스로 반환
protected $useSoftDeletes = true; // 소프트 삭제 활성화
protected $allowedFields = ['title', 'content', 'author', 'views'];
protected $useTimestamps = true; // created_at, updated_at 자동 관리
protected $validationRules = [
'title' => 'required|min_length[2]|max_length[200]',
'content' => 'required|min_length[10]',
'author' => 'required',
];
}
2
기본 CRUD 메서드
$model = new PostModel();
// 전체 조회
$posts = $model->findAll();
// ID로 단건 조회
$post = $model->find(1);
// 조건 조회
$post = $model->where('author', '김철수')->first();
// 삽입
$id = $model->insert(['title' => '새 글', 'content' => '...', 'author' => '홍길동']);
// 수정
$model->update(1, ['title' => '수정된 제목']);
// 삭제 (소프트 삭제: deleted_at 설정)
$model->delete(1);
// 완전 삭제
$model->delete(1, true);
실제 DB 조회 결과 (최신 5개)
| ID | 제목 | 작성자 | 조회수 | 작성일 |
|---|---|---|---|---|
| 10 | Repository 패턴 적용 | 아키텍트 | 0 | 2026-05-27 14:29 |
| 7 | 캐싱 전략 #720 | 홍길동 | 237 | 2026-05-27 14:28 |
| 8 | 보안 best practice #921 | 홍길동 | 493 | 2026-05-27 14:28 |
| 9 | PHP 기초 #249 | 이영희 | 365 | 2026-05-27 14:28 |
| 1 | CodeIgniter 4 시작하기 | 김철수 | 142 | 2026-05-27 13:21 |