IMG-LOGO
공지사항 :

Yii2를 이용한 게시판 만들기

lmkfox - 2025-05-20 06:54:24 40 Views 0 Comment

Yii2를 이용한 게시판 만들기


1. 프로젝트 생성

composer create-project --prefer-dist yiisoft/yii2-app-basic yii2-board
cd yii2-board


2. 데이터베이스 설정

config/db.php 파일을 열고 데이터베이스 정보를 입력합니다.

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=board_db',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
];

※ 데이터베이스 board_db는 phpMyAdmin이나 CLI를 통해 미리 생성해둡니다.


3. 게시글 모델 생성

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
);


4. CRUD 생성 (Gii 이용)

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 클릭


5. 라우팅 및 실행 확인

브라우저에서 아래 주소로 접속하여 확인합니다:

http://localhost:8080/index.php?r=post

  • 게시글 목록, 작성(Create), 보기(View), 수정(Update), 삭제(Delete) 기능이 자동 생성됩니다.

  • 폼 유효성 검증도 기본 탑재되어 있습니다.


6. 추가 커스터마이징 (선택사항)

- 날짜 표시 커스터마이징 (뷰 파일 내)

<?= Yii::$app->formatter->asDatetime($model->created_at) ?>

- 게시글 정렬

컨트롤러 또는 SearchModel에서 정렬 추가:

$query->orderBy(['created_at' => SORT_DESC]);


마무리

Yii2는 Gii라는 강력한 코드 생성 도구를 이용해 빠르게 CRUD 기반의 애플리케이션을 구축할 수 있습니다. 위 예제는 기본 게시판 기능에 해당하며, 필요 시 다음 기능을 추가할 수 있습니다.

  • 사용자 인증 (Yii2 Auth)

  • 댓글 기능

  • 페이징/검색 기능

  • 이미지 업로드

  • RBAC(권한 제어)


댓글