composer create-project --prefer-dist yiisoft/yii2-app-basic yii2-board
cd yii2-board
config/db.php 파일을 열고 데이터베이스 정보를 입력합니다.
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=board_db',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
];
※ 데이터베이스 board_db는 phpMyAdmin이나 CLI를 통해 미리 생성해둡니다.
php yii gii/model --tableName=post --modelClass=Post
또는 직접 테이블 생성 후 모델을 연동할 수도 있습니다.
MySQL 테이블 예시:
CREATE TABLE post (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
Gii를 사용해 간단하게 CRUD 코드를 생성할 수 있습니다.
브라우저에서 다음 주소로 접속합니다:
http://localhost:8080/index.php?r=gii
이후 “CRUD Generator” 메뉴에서 다음 입력:
Model Class: app\models\Post
Search Model Class: app\models\PostSearch
Controller Class: app\controllers\PostController
→ Generate 클릭
브라우저에서 아래 주소로 접속하여 확인합니다:
http://localhost:8080/index.php?r=post
게시글 목록, 작성(Create), 보기(View), 수정(Update), 삭제(Delete) 기능이 자동 생성됩니다.
폼 유효성 검증도 기본 탑재되어 있습니다.
<?= Yii::$app->formatter->asDatetime($model->created_at) ?>
컨트롤러 또는 SearchModel에서 정렬 추가:
$query->orderBy(['created_at' => SORT_DESC]);
Yii2는 Gii라는 강력한 코드 생성 도구를 이용해 빠르게 CRUD 기반의 애플리케이션을 구축할 수 있습니다. 위 예제는 기본 게시판 기능에 해당하며, 필요 시 다음 기능을 추가할 수 있습니다.
사용자 인증 (Yii2 Auth)
댓글 기능
페이징/검색 기능
이미지 업로드
RBAC(권한 제어)