라라벨 시작하기 8 – 화면과 저장(모델)

부트캠프의 Chirps 까지 진행을 했다. 그래서 화면에 Hello, World! 까지는 출력을 했다. View를 달아준다.

Vite Development 덕분에 (npm run dev) 리로드를 하지 않아도 코드 수정후 저장만 하면 즉각 변경을 해준다.

적당히 적용해주면 이렇게 화면이 나온다. 그러니까 index.blade.php는 본문역할인샘.

상단 네이게이션도 레이아웃에 별도로 추가할 수 있어 여기에 코드를 추가하면 서로 연동할 수 있다. 참 잘 만들어 놨다. 물론 여기에 맞춰 만들면 그런데 이 틀을 벗어나려면 고생을 좀 해야겠지?

그리고 다음에 할 건 사용자가 Chirps를 등록함에 있어 HasMany 관계를 맺는다. 스프링의 JPA는 양방향으로 관계를 맺을 수 있어 Many to One 또는 One to Many를 할 수 있다. 이 케이스에서는 User에 One to Many를 한다. 내 경우엔 Chirps에 Many to One을 하는게 데이터 모델링 측면에서 더 어울린다 생각했다. 여기선 HasMany로 이루어진다니 이부분은 좀더 알아봐야겠다.

컬럼 설정

validation은 컨트롤러에 있다. 모델에는 없고. 그런데 실제 DB의 테이블 컬럼에 적용되었다. 이렇게 추측한 이유는 validation에 ‘message’ => ‘required|string|max:255’, 때문.

그런데 저 값을 변경하고 migrate:fresh를 했는데 디비에 적용되지 않았다. 왜지? 혹시나 싶어 컬럼을 삭제후 다시 migrate를 했으나 255그대로이다. 이건 기본값이 255인가보다. 그렇다면 validation을 컨트롤러에서 하는 추측은 맞지 않는다.

컬럼 설정은 Migration에서 한다.

이렇게 length를 지정할 수 있었다.

Migration 파일의 관리

Migration 파일은 각 모델마다 database\migrations\yyyy_mm_dd_hhiiss_create_(model_name)_table.php 형태로 생성된다. 왠지 모델을 변경할 때마다.migration 형태로 생성되는거 같은데 지금은 수동으로 해당 파일을 만지고 있다. 다른 방법이 있는지 찾아보자.

오늘은 여기까지.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다