Error기록 노트/PHP | Laravel

Laravel 9 특정 디렉토리 내 model, controller, migrate 생성 시 path 경로 설정 방법

에러노트 2023. 1. 2. 20:09

안녕하세요! 계묘년 올 한 해도 다들 목표한 바 이루시길 바랍니다.

오늘은 기본 생성 방법이 아닌 특정 디렉토리 내에 각각 모델, 컨트롤러, database를 생성하는 경로를 알려드리고자 글을 쓰게 되었습니다. 검색해도 공식문서에서도 찾지 못해 이리저리 실험하다 5시간 만에 겨우 알아냈답니다.🥲

글 쓰는 현재 기준, 맥북 Pro macOS Ventura(13.1 버전), phpstorm 사용 중입니다.


0. 본인이 생성할 곳의 위치를 먼저 알아봅시다.

데이터베이스를 제외한 모든 기본 위치는 app 하위에 존재합니다.( ex-app/Models, app/Http/Controllers)

데이터베이스만 유일하게 app과 동일한 위치에 있습니다. (ex- project/database/migrations)

하지만 제가 만들고자 하는 위치는 app이 아닌 packages 내에 넣어두고 싶습니다.

 

1. model 생성 방법

phpstorm에서 터미널을 열어줍니다.(전 zsh로 열었습니다. 터미널, powershell 등 각자 환경에 맞게 열어주시면 됩니다.)

*유의하실 점은 '  '과 \(역슬레쉬)를 사용한다는 것입니다.

php artisan make:model '..\..\디렉토리명\Models\생성할 모델명'

아까 위에서 설명드렸다시피 제가 원하는 디렉토리는 기본 생성 위치의 밖이기 때문에, '..\'을 통해 상위 디렉토리로 빠져나가야 합니다.

..\을 2번 쓰지 않으면 왼쪽 아래와 같이 app/models 폴더 내에 새로 디렉토리가 생기게 됩니다. (제가 원하는 모습은 오른쪽이었어요)

ㄴapp                                                                       ㄴpackages
      ㄴModels                                                                 ㄴ생성한 디렉토리
            ㄴ생성한 디렉토리                                                         ㄴModels
                                                                                                         ㄴ생성한 모델명 

 

2. Controller 생성 방법

controllerd의 경우, app/Http/Controllers이 기본 위치이기 때문에 한번 더 써주어야 합니다.

php artisan make:controller '..\..\..\디렉토리명\Controllers\컨트롤러명'

 

3. migration 생성 방법

기본 위치는 database/migrations입니다. 게다가 이 친구만 --path가 먹히기 때문에 구문이 조금 다릅니다.

php artisan make:migration 생성할 테이블명 --path=/디렉토리명/database/migration

여기엔 '' 또는  \(역슬레쉬)가 쓰이지 않고 --path=/가 쓰이니 유의하시기 바랍니다!

 

여러분의 시간이 절약되었기를 바라며 독감 유의하시고 올 한 해도 행복하세요 :)

오류나 수정사항이 보인다면 언제든 댓글 남겨주시기 바랍니다. 도움이 되었다면 따뜻한 공감 부탁드려요ㅎㅎ