2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

cakephp 3.x 컨트롤러에서 다른 이름의 테이블을 불러와서 쓰는 방법

cakephp3 는 기본적으로 제약이 걸려 있어서 MVC 패턴이 적용되어 있고 그에 따라서 파일명을 붙일 때 여러가지 룰이 있다. 
플러스!! 이름이 같은 경우, 예를 들어서 UsersController.php (Controller) 는 같은 이름의 UsersTable.php (Model) 과 User.php (Entity) 를 자동으로 참조하게 되어있다. 이름을 다르게 주거나 대소문자가 틀리거나 하면 꽤나 귀찮은 일이 벌어지더라..ㅠㅠ

근데 당연하게도 하나의 컨트롤러에 하나의 모델만 쓸 수는 없는 노릇이니..때로는 A 컨트롤러에서 B테이블에 있는 데이터를 참조하거나 조작하고 싶을 때가 있다. 그 때 필요한 건 TableRegistry 가 되겠다.

1. 작업할 컨트롤러 파일을 열어서 맨 위에 패키지를 추가한다.
> ****Controller.php 상단에 추가
use Cake\ORM\TableRegistry;

2. 작업할 컨트롤러의 initialize() 함수에서 참조할 테이블명을 입력해서 핸들러? 핼퍼? 를 생성한다.
> 더 보기
class UsersController extends AppController
{

    public function initialize()
    {
        parent::initialize();

        // Customers 테이블 조작할 수 있는 핸들러? 생성
        $this->Customers = TableRegistry::get('customers');
    }
// 다른 소스 생략..
// 필요한 부분에서 다음과 같이 사용 가능하다.
   public function initialize()
   {
       $this->Customers->find()->all();
   }

간단한 것 같은데 처음 하려고 하면 뭘 어찌..할지..모르겠다는 거 ㅋㅋㅋ

댓글

이 블로그의 인기 게시물

[메모] PostgreSQL에서 Insert 하는 경우 자동채번 PK가 중복에러 나는 경우

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

[react-native] uuid 생성이 에러가 날 때 대처법