PHP강좌/[라라벨]게시판만들기강좌

[라라벨+mysql]게시판 만들기 강좌 #21. 댓글 - 테이블생성

에스크리토 2024. 8. 2. 13:42
반응형

요즘 커뮤니티는 댓글이 중요하다. 여기서 만들어 볼 댓글은 댓글에 다시 댓글을 다는 것과 댓글에 첨부이미지를 넣을 수 있는 기능까지 해보려고 한다.

 

우선 테이블을 만들어 보자.

 

$php artisan make:model Memos -m

 

이렇게 하면 model만 만들겠다는 것이다. -m 뒤에 c를 붙이면 콘트롤러까지 만들어준다. 댓글은 콘트롤러가 필요없기때문에 모델만 만들었다.

 

database 폴더 밑에 migrations 폴더에 가면 파일이 생겼을 것이다. memos가 들어간 파일명을 찾아서 아래와 같이 수정해 준다.

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('memos', function (Blueprint $table) {
            $table->id();
            $table->integer('bid');
            $table->integer('pid')->nullable();
            $table->string('userid', 100);
            $table->text('memo');        
            $table->tinyInteger('status')->default(1);
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('memos');
    }
};

 

댓글에 사용할 테이블을 만든다. 필요한 컬럼들을 만들어 주었다. 물론 나중에 컬럼이 추가로 필요해주면 추가해 줄 수 있다. 지금 완벽한 필요도 없고 완벽할 수도 없다.

 

$php artisan migrate

 

이렇게 해주면 테이블이 생성된다. file_tables 할때 했던거와 똑같다. 

 

테이블이 생성됐으면 model을 조금 수정해준다.

 

/app/Models/Memos.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Memos extends Model
{
    use HasFactory;

    protected $fillable = [
        'bid','pid','userid','memo'
    ];
}

 

데이터가 입력될 컬럼을 지정해 준다.

 

다음 시간엔 지금 만든 테이블을 이용해 댓글을 달아보자.

 

반응형